Copier par macro d'un table vers une autre table

Le
Bruno
Bonjour,
J'ai une base 1 qui contient des données stockées selon des champs
A,B,C,D,E,F jusqu'à U.
Lorsque le champs U contient une donnée (Teste ou Numérique), je veux
reporter les données figurant sous les champs R,E,C,D,B,F,G,H et U dans une
base 2.
Je ne suis pas très expert en VBA. J'ai réussi en utilisant les fonctions SI
et RECHERCHE V, mais ce n'est pas aussi efficace que le code VBA et cela
implique plus de manip, car je transpose sur ma base 2 toutes les lignes de
la base 1, mais certaine sont vides. Je voudrai ne transferer sur la base 2
que les lignes (selon les champs qui m'intertessent) correspondant à un
champs U contenant une info.
Y a-t-il une bonne âme qui pourrait m'aider ?
Merci d'avance,
Bruno
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #5049211
Bonjour.
Le code suivant repose sur la supposition que le champ commun aux deux bases
est la colonne A.
La base 1 est sur la feuille "Feuil1" et la base 2 sur la feuille "Feuil2"
Les colonnes ont été recopiées à l'identique.
Enfin, la macro n'a pas été testée...
Si tu as des problèmes d'adaptation, mets un classeur exemple (en altérant
les données confidentielles) sur www.cjoint.com et poste l'adresse générée.

Sub test()
Dim c As Range, Ctr, sh As Worksheet
Set sh = Sheets("Feuil2")
With Sheets("Feuil1")
For Each c In .Range("A1", .Range("A65536").End(xlUp))
If .Cells(c.Row, "U") <> "" Then
Ctr = Application.Match(c, sh.Range("A:A"), 0)
If IsNumeric(Ctr) Then
sh.Cells(Ctr, "R") = .Cells(c.Row, "R")
sh.Cells(Ctr, "E") = .Cells(c.Row, "E")
sh.Cells(Ctr, "C") = .Cells(c.Row, "C")
sh.Cells(Ctr, "D") = .Cells(c.Row, "D")
sh.Cells(Ctr, "B") = .Cells(c.Row, "B")
sh.Cells(Ctr, "F") = .Cells(c.Row, "F")
sh.Cells(Ctr, "G") = .Cells(c.Row, "G")
sh.Cells(Ctr, "H") = .Cells(c.Row, "H")
sh.Cells(Ctr, "U") = .Cells(c.Row, "U")
Else
MsgBox c & " n'a pas de correspondance dans la base 2"
End If
End If
Next c
End With
End Sub

Cordialement.
Daniel
"Bruno"
Bonjour,
J'ai une base 1 qui contient des données stockées selon des champs
A,B,C,D,E,F jusqu'à U.
Lorsque le champs U contient une donnée (Teste ou Numérique), je veux
reporter les données figurant sous les champs R,E,C,D,B,F,G,H et U dans
une
base 2.
Je ne suis pas très expert en VBA. J'ai réussi en utilisant les fonctions
SI
et RECHERCHE V, mais ce n'est pas aussi efficace que le code VBA et cela
implique plus de manip, car je transpose sur ma base 2 toutes les lignes
de
la base 1, mais certaine sont vides. Je voudrai ne transferer sur la base
2
que les lignes (selon les champs qui m'intertessent) correspondant à un
champs U contenant une info.
Y a-t-il une bonne âme qui pourrait m'aider ?
Merci d'avance,
Bruno


Publicité
Poster une réponse
Anonyme