Copier/coller ligne tableau
f894009 Messages postés 17417 Date d'inscription Statut Membre Dernière intervention -
Bonsoir le forum,
je cherche a copier des lignes specifique d'un tableau vers un autre,
pour illustrer ma demande:
disons que j'ai deux tableaux,Tableau1 et Tableau2 composes de 6 colonnes ("B:G")
j'aimerais copier a partir des colonnes ("D:G") du tableau1 vers les colonnes respectives du Tableau2
voila mon code et un exemple du fichier que j'utilise.
https://drive.google.com/file/d/13foDZopZgsh-ejToDPwcZVy9GuqKA4wW/view?usp=sharing
Dim ligne%, X%
[B7].CurrentRegion.Sort , key1:=[B7], Header:=xlYes
ligne = 7: X = 4
While Sheet1.Cells(ligne, 3).Value <> Empty
If Sheet1.Cells(ligne, 3).Value = "TR-0000001" Then
Sheet2.Cells(ligne, X).Value = Sheet1.Cells(ligne, X).Value
X = X + 1
End If
ligne = ligne + 1
Wend
NB:mais en realite mon tableau comporte 56 colonnes
Cordialement JSCH19
8 réponses
-
Bonjour,
Pourquoi copier que D:G, les autres colonnes servent a quoi?
-
Re,
Ok,
Connaissez vous les instructions relatives a la gestion des Tableaux (Table)?
-
Re,
Vous avez deux tables ou plus exacement Tableaux
'test cellule "normale" If .Cells(ligne, 3).Value = "TR-0000001" Then 'test cellule d'un tableau If Tableau1.DataBodyRange.Item(n, 2).Value = "TR-0000001" Then 'ou sans accents pour les noms de colonne If Range("table1[Pieces]").Item(i).Value = "TR-0000001" Then -
Re,
Pourquoi ne les utilisez vous pas?
sans tableau:copie plage vers une autre plage:
Cells(10, 4).Resize(, 4) = Cells(4, 4).Resize(, 4).Value
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
Re,
J'ai recupere votre fichier. C'est comme ca que j'ai constate que vous n'utilisez pas les instructions tableau
servira pas trop a grand chose que j'utilise les cells ou autres
Et que voulez vous utiliser pour completer votre table14?
-
jlai modifie,jn'avais pas vue ta modification avant que je poste ce message,je travaille la-dessus,imaginez-vous que dans mon tableau reel j'ai 56 colonnes
je ne voulais pas me retrouver a ecrire:
Sheet2.cells(ligne, 4).Value = Sheet1.cells(ligne, 4).Value Sheet2.cells(ligne, 5).Value = Sheet1.cells(ligne, 5).Value Sheet2.cells(ligne, 6).Value = Sheet1.cells(ligne, 6).Value Sheet2.cells(ligne, 7).Value = Sheet1.cells(ligne, 7).Value
-
-
Re,
Donc c'est ok?
-
Re,
Pas encore je cherche une solution beaucoup plus efficient et moins volumineux.
exemple:
Dim ligne%, X% [B7].CurrentRegion.Sort , key1:=[B7], Header:=xlYes ligne = 7: X = 4 While Sheet1.Cells(ligne, 3).Value <> Empty If Sheet1.Cells(ligne, 3).Value = "TR-0000001" Then Sheet2.Cells(ligne, X).Value = Sheet1.Cells(ligne, X).Value Do Until X = 8 Sheet2.Cells(ligne, X).Value = Sheet1.Cells(ligne, X).Value X = X + 1 Loop End If ligne = ligne + 1 Wendmais ce code n'est pas encore a point,toute proposition est la bienvenue.
Cordialement JSCH19
-
-
Re,
Je vous ai mis des exemples
Celle du post <7> est adoc
Vous voulez que jevous face la modif?
-
Re,
Une facon de faire: https://www.cjoint.com/c/LIbro770szg