Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1386 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Mise à jour d'une feuille à partir d'une autre feuille en vba

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Mise à jour d'une feuille à partir d'une autre feuille en vba

n°1830948
jrege75
Posté le 23-12-2008 à 17:59:24  profilanswer
 

Bonsoir,
 
ça fait plusieurs jours que je bloque sur un problème de boucle en langage vba avec le logiciel excel !!!
 
Je souhaite mettre à jour la colonne 2 de ma feuil1 à partir de la colonne 2 de ma feuil2.
La 1ère colonne des deux feuilles sert de champ clé.
Il est impossible que les lignes de la feuil2 ne soit pas dans la feuil1.
 
En faite j'arrive seulement à mettre à jour le 1er champ clé de la feuil, après il ne modifie plus rien.
 
 
 
Sub pop()
 
Dim trouve As Boolean
 
 
x = 2 'x ligne de la feuil1
y = 2 'y ligne de la feuil2
 
Do While Worksheets("feuil1" ).Cells(x, 1) <> ""
If Worksheets("feuil1" ).Cells(x, 1) = Worksheets("feuil2" ).Cells(y, 1) Then
Worksheets("feuil1" ).Cells(x, 3) = worksheets("feuil2" ).cells(y,2)
 
 
End If
x = x + 1
Loop
 
 
 
End Sub
 
Pour info, je préfère do while à for car mon fichier n'aura pas forcément à l'avenir le même nombre de lignes.
 
quelqu'un peut-il m'aider ?
 
 
Merci et bonnes fêtes à tous

mood
Publicité
Posté le 23-12-2008 à 17:59:24  profilanswer
 

n°1831029
satirik
Posté le 24-12-2008 à 00:01:06  profilanswer
 

si j'ai bien compris ton code, car tes explications sont pas géniales,
 
tu veux, pour chaque ligne de la feuille 1, trouver la ligne de la feuille 2 ayant la meme valeur dans la colonne 1, et recopier la valeur de la colonne 2 de cette ligne dans la colonne 3 de la premiere feuille ?
 
si oui, il te faut 2boucles, dans ton code, tu as bien 2 variables, mais une seule boucle, ton y reste a 2, donc rajoute une deuxième boucle imbriqué:
 
Sub pop()
 
Dim trouve As Boolean
 
 
x = 2 'x ligne de la feuil1
 
Do While Worksheets("feuil1" ).Cells(x, 1) <> ""
y = 2 'faut la reinitialiser à chaque fois
Do While Worksheets("feuil1" ).Cells(y, 1) <> ""
If Worksheets("feuil1" ).Cells(x, 1) = Worksheets("feuil2" ).Cells(y, 1) Then
Worksheets("feuil1" ).Cells(x, 3) = worksheets("feuil2" ).cells(y,2)
 
 
End If
y = y + 1
Loop
x = x + 1
Loop
 
 
End Sub

n°1831058
seniorpapo​u
Posté le 24-12-2008 à 07:18:19  profilanswer
 

Bonjour,
si la macro ne t'est pas indispensable, pourquoi ne pas mettre:
=SIERREUR(RECHERCHEV(A1;Feuil2!A:B;2;FAUX);"" )
dans C2 de la feuil1 puis l'étendre sur la colonne??
Cordialement


Message édité par seniorpapou le 24-12-2008 à 07:19:16
n°1831066
jrege75
Posté le 24-12-2008 à 07:55:10  profilanswer
 

Oui merci Satirik, ça marche, il fallait y penser pour la réinitialisation du y !
 
en me relisant c'est vrai que je n'étais pas forcément très clair dans mes explications.
 
en tout cas merci pour ton aide tu m'enlèves une grosse épine dans mon pied et surtout bonnes fêtes
 
 
 
 
quotemsg=1831029,2,44483]si j'ai bien compris ton code, car tes explications sont pas géniales,
 
tu veux, pour chaque ligne de la feuille 1, trouver la ligne de la feuille 2 ayant la meme valeur dans la colonne 1, et recopier la valeur de la colonne 2 de cette ligne dans la colonne 3 de la premiere feuille ?
 
si oui, il te faut 2boucles, dans ton code, tu as bien 2 variables, mais une seule boucle, ton y reste a 2, donc rajoute une deuxième boucle imbriqué:
 
Sub pop()
 
Dim trouve As Boolean
 
 
x = 2 'x ligne de la feuil1
 
Do While Worksheets("feuil1" ).Cells(x, 1) <> ""
y = 2 'faut la reinitialiser à chaque fois
Do While Worksheets("feuil1" ).Cells(y, 1) <> ""
If Worksheets("feuil1" ).Cells(x, 1) = Worksheets("feuil2" ).Cells(y, 1) Then
Worksheets("feuil1" ).Cells(x, 3) = worksheets("feuil2" ).cells(y,2)
 
 
End If
y = y + 1
Loop
x = x + 1
Loop
 
 
End Sub [/quotemsg]


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Mise à jour d'une feuille à partir d'une autre feuille en vba

 

Sujets relatifs
mise en place combobox[VBA] Mise à jour macro dans plusieurs fichiers...
swf dans lightbox à partir d'un .xmlrécupérer des informations d'une feuille et les placer dans une autre
Génération de classe CS à partir d'un XSDMise à jour PHP
calibration d'une fonction à partir d'une ODE [scilab]Problème mise à jour modèle impossible Dreamweaver
Plus de sujets relatifs à : Mise à jour d'une feuille à partir d'une autre feuille en vba


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR