Entete de matrice qui est effacée
David -
Bonjour,
J'ai créé le code suivant pour comparer deux tableaux et ajouter des informations du 2ème tableau dans le 1er sous certaines conditions.
Je souhaite par la suite remplacées les données chargées du tableau dans la feuille de calcul, mais les entêtes n'apparaissent pas. est ce que vous pouvez m'aider ?
Merci
Option Base 1
Sub Test()
Dim Tab1(),Tab 2()
Redim Tab1(DerL1,6)
Redim Tab2(DerL2,6)
For I= 2 to DerL1
Tab1(I,1)=Ws1.range("A" & I)
Tab1(I,2)=Ws1.range("B" & I)
Tab1(I,3)=Ws1.range("C" & I)
Tab1(I,4)=Ws1.range("D" & I)
Tab1(I,5)=Ws1.range("E" & I)
Tab1(I,6)=Ws1.range("F" & I)
Next I
For J= 2 to DerL2
Tab2(J,1)=Ws2.range("A" & J)
Tab2(J,2)=Ws2.range("B" & J)
Tab2(J,3)=Ws2.range("C" & J)
Tab2(J,4)=Ws2.range("D" & J)
Tab2(J,5)=Ws2.range("E" & J)
Tab2(J,6)=Ws2.range("F" & J)
Next J
For I = LBound(Tab1) To UBound(Tab1)
For J = LBound(Tab2) To UBound(Tab2)
If Tab1(I,1= Tab2(J,4) Then Tab1(I,5)=Tab2(J,1)
If Tab1(I,1= Tab2(J,4) Then Tab1(I,6)=Tab2(J,6)
Next J
Next I
Ws1.Cells(1,1).Resize(UBound(Tab1,1),UBound(Tab1,2))= Tab1
End Sub
Windows / Firefox 111.0
6 réponses
-
Bonjour,
Ou est defini DerL1 & 2?
Redim Tab1(DerL1,6) Redim Tab2(DerL2,6)
Pouvez mettre un fichier exemple a dispo
Pour transmettre un fichier,
Veillez a ce qu'il n'y ait PAS DE DONNEES CONFIDENTIELLES
il faut passer par un site de pièce jointe tel que cjoint.comAllez sur ce site : http://cjoint.com
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
-
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
bonjour,
peux-tu partager un fichier exemple, et décrire en quoi le résultat obtenu diffère du résultat attendu?
-
Bonjour,
Je vous joins le fichier ci joint, si vous déroulez le code, les entêtes du tableau de la feuille Ws1 ont disparu.
Est ce que vous pouvez me dire a quoi cela est du ?
j'aimerais savoir aussi si il est possible de supprimer les données d'un tableau en fonction d'une données (Ex : Supprimer lieu "Paris") et mettre a jour la feuille Ws1 en conséquence ?
Merci par avance pour votre aide,
https://www.cjoint.com/c/MCAnUTHj3hX
-
Bonjour,
Oui effectivement, en enregistrant la 1ere ligne comme une ligne du tableau cela fonctionne,
je souhaiterais supprimer les lignes du tableau dont le lieu est "Paris".
En passant par la matrice du tableau, puis appliquer les changements dans la feuille excel,
Est ce que vous pouvez me dire comment procéder ?
Merci par avance,
-
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question -
yg_be Messages postés 23437 Date d'inscription Statut Contributeur Dernière intervention Ambassadeur 1 588
Le code me semble bizarrement compliqué. Ceci ne fonctionne-t-il pas tout aussi bien?
Option Explicit Sub Testy() Dim WB As Workbook, Ws1 As Worksheet, Ws2 As Worksheet Dim DerL1 As Long, DerL2 As Long, I As Long, J As Long Set WB = ThisWorkbook Set Ws1 = WB.Sheets("Ws1") Set Ws2 = WB.Sheets("Ws2") DerL1 = Ws1.Range("A" & Rows.Count).End(xlUp).Row DerL2 = Ws2.Range("A" & Rows.Count).End(xlUp).Row For I = 2 To DerL1 For J = 2 To DerL2 If Ws1.Cells(I, 1) = Ws2.Cells(J, 4) Then Ws1.Cells(I, 5) = Ws2.Cells(J, 1) Ws1.Cells(I, 6) = Ws2.Cells(J, 6) End If Next J Next I End Sub -
Bonjour,
Oui le code que tu proposes est plus simple, je souhaiterais utiliser les tableaux car le fichier fait plusieurs centaines de milliers de lignes. Et je souhaite être plus à l'aise dans leur utilisation..