× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Bureautique
 pb dans formule VBA excel
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
BX
  Posté le 05/10/2004 @ 15:15 
Aller en bas de la page 
Petit astucien

bonjour J'ai une erreur de déplacement de cellule malgré la vérification du déplacement mais où est-elle. Voici un extrait du code qui pose problème : typeent = Cells(11, 2) Select Case typeent Case 1 'Entreprise ActiveCell.Offset(0, 1).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaires Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Case 2 'Entreprise par alternance ActiveCell.Offset(0, 2).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaire Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Case 3 'organisme collecteur au titre du plan de formation Selection.Offset(0, 3).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaire Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Case 4 'Organisme collecteurs au titre de l'alternance Selection.Offset(0, 4).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaire Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Case 5 Selection.Offset(0, 5).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaire Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Case 6 Selection.Offset(0, 6).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaire Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Case 7 Selection.Offset(0, 7).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaire Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Case 8 Selection.Offset(0, 8).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaire Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Case 9 ActiveCell.Offset(0, 9).Range("a1").Select ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(7, 2) 'nombre de stagiaire Selection.Offset(0, 13).Range("a1").Select ActiveCell.Value = Cells(8, 2) 'nombre d'heures Merci pour les différentes possibilités
Publicité
galopin01
 Posté le 05/10/2004 à 17:16 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Bonsoir, Tout à fait au hasard car l'exposé ne me parait pas convaincant: A chaque fois que tu pose un Select, tu fais référence à une nouvelle Activecell un vrai jeu de piste... Case 1 'Entreprise ActiveCell.Offset(0, 1).Range("a1").Select 'Colonne 3 par ex. ActiveCell.Value = Cells(10, 2) 'montant Selection.Offset(0, 13).Range("a1").Select '= Colonne 16 (3+13) ActiveCell.Value = Cells(7, 2) 'nombre de stagiaires Selection.Offset(0, 13).Range("a1").Select '= Colonne 29 (16+13) ActiveCell.Value = Cells(8, 2) 'nombre d'heures Je verrai plutôt un code dans ce genre pour faire toujours référence à la même ActiveCell : en plus çà à l'avantage d'identifier clairement la cellule cible Case 1 'Entreprise ActiveCell.Offset(0, 1).Value = Cells(10, 2) 'montant ActiveCell.Offset(0, 14).Value = Cells(7, 2) 'nB de stagiaires ActiveCell.Offset(0, 27).Value = Cells(8, 2) 'nombre d'heures Case 2 ... et ainsi de suite Mais j'ai peut-être rien compris au Pb! A+

Modifié par galopin01 le 05/10/2004 17:18
BX
 Posté le 05/10/2004 à 18:34 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Petit astucien

Merci pour cette solution pour alléger le code. Mais réellement, le problème n'est pas là. lorsque j'utilise la commande offset, cette commande doit me permettre de me déplacer dans la feuille. Certe, elle se déplace bien pour les 2 premiers points (case 1 et case 2) mais pour les autres j'ai un décalage d'une colonne et je ne vois pas d'où vient le problème. Exemple : la sélection de la case 3 devrait déplacer l'information sur la troisème colonne alors qu'elle se déplace de 2 colonnes au lieu de 3. Pourtant dans l'offset, j'ai bien noté offset(0,3).
galopin01
 Posté le 05/10/2004 à 19:36 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
  Astucien
Bonsoir, je ne vois qu'une solution : typeent n'est pas évalué comme tu t'y attend et la macro ne boucle donc pas sur case 3 (ou+) Mettre un point d'arret sur ta macro quelque part dans Case 3 ou mettre un : MsgBox typeent juste avant Select Case pour vérifier comment est évaluée typeent ??

Modifié par galopin01 le 05/10/2004 19:39
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
89,99 €TP-Link Deco E4 (WiFi Mesh 1200 Mbit/s, jusqu'à 180 m²) x 3 à 89,99 €
Valable jusqu'au 10 Juillet

Amazon fait une promotion sur le kit TP-Link Deco E4 avec 3 satellites qui passe à 89,99 € livré gratuitement alos qu'on le trouve ailleurs à partir de 110 €. Ces 3 satellites Deco travaillent ensemble pour former un seul et unique réseau WiFi, garantissant une connexion rapide importe où que vous êtes. Ils offrent une connexion Mesh WiFi haut débit de 1200 Mbit/s , la possibilité de connecter + de 60 appareils dans votre foyer jusqu'à 250 m² et sans zone morte (si cela ne suffit pas, ajoutez simplement plus de Deco à tout moment pour augmenter la couverture WiFi), idéal pour toute la maison.


> Voir l'offre
29,99 €Jeu PC Red Dead Redemption 2 à 29,99 €
Valable jusqu'au 12 Juillet

Fnac fait une belle promotion sur la version PC du jeu Red Dead Redemption 2 qui passe à 29,99 €. La boîte de jeu contient un code de téléchargement.


> Voir l'offre
52,99 €Clé USB 3.0 et Micro USB Sandisk Ultra OTG 256 Go à 52,99 €
Valable jusqu'au 10 Juillet

Amazon fait une promotion sur la nouvelle version de la clé USB 3.0 SanDisk Dual Drive 256 Go qui passe à 52,99 € livrée gratuitement. La particularité de cette clé USB réside dans le fait qu'elle dispose à la fois d'un connecteur USB pour la brancher sur votre ordinateur ou votre TV, mais également d'un connecteur micro USB pour la brancher sur votre smartphone ou votre tablette. Compatible USB 3.0 (et 2.0), cette clé USB offre des débits jusqu'à 150 Mo/s. 


> Voir l'offre

Sujets relatifs
Excel reporter détail de calcul dans formule
HELP => Formule conditionnelle dans Excel 2007
Excel 2007 résultat formule dans une autre cellule
Excel 2007 formule et saisie dans la même cellule
FORMULE EXCEL POUR RECHERCHE DANS UNE TABLE
formule modifiée dans excel donne pas résultat
Formule dans Excel
insérer un retour ligne dans une formule excel
une erreur dans la formule de calcul avec excel
formule pour excel et # dans excel
Recopier formule dans Excel
Plus de sujets relatifs à pb dans formule VBA excel
 > Tous les forums > Forum Bureautique