laurent950
XLDnaute Barbatruc
Bonsoir le forum, MJ13, MichD, Misange, Dranred.
je vous ai écris à tous les trois car je bute depuis 1 semaine sur le sujet, je sais pas si j'essaie de faire quelque choses qui n'est pas faisable ou si je mi prend mal ?
le bute de cette exercise est :
La récupération ciblé de colonne dans une Variable Tableau pour un vers export excel (seulement des colonnes choisit dans cette Variable Tableau)
j' ai ajouter les deux fichier identique (avec même codes) :
format excel 2003
format excel 2007
J'ai repérer les doublons dans la Variable tableau, crée un compteur pour les Noms en doubles et restitué cette liste sans les doublons.
Sur une Variable tableau (à deux dimension) comment chosir les colonnes que lon veux exporter vers excel sans exporter tous le tableaux vers excel ?
Exemple :
temp3(1 to 13, 1 to 5)
‘ Ici ont exporte tous le Tableau en mémoire vers excel.
Range("G1").Resize(UBound(temp3, 1), UBound(temp3, 2)) = temp3 / vrais car c'est votre exemple
‘ Ici J'aimerais juste la colonne 3 de la Variable Tableau
Range("G1").Resize(3,3) = temp3 / faux
' Ici j'aimerais juste les colonnes 2 à 3 de la Variable Tableau.
Range("G1").Resize(2,4) = temp3 / faux
Voici le code qui traite les doublons, la couleur est une astuce je sais pas si elle est bien appliquer ?
Code :
Dans cette exemple j'aimerais supprimer ces phase intermédiare car Je ne comprends pas comment faire par selection directe de colonne dans la Variable Tableau et je suis obliger de passer par des étapes intermédiaire (Tableaux intermédiare) est cela alourdi le code pour la maintanabilité.
Je sais faire avec le dictionnaire Set Mondico = CreateObject("Scripting.Dictionary"), mais ces en tableaux a deux dimension que j'ai besoin.
Je vous remercie pour votre aide, en espèrent que mon poste proffite a d'autre par la même occasion est aussi par la richesse de se site qui fait que l'on apprend toujours un peux plus chaque jours.
Je tiens aussi à remercier, Misange, MichD et MJ13, Dranred qui m'on permis d'avancer et de comprendre la Variable Tableau qui est complexe mais très riche en éfficacité, grace à leur aide.
Laurent
je vous ai écris à tous les trois car je bute depuis 1 semaine sur le sujet, je sais pas si j'essaie de faire quelque choses qui n'est pas faisable ou si je mi prend mal ?
le bute de cette exercise est :
La récupération ciblé de colonne dans une Variable Tableau pour un vers export excel (seulement des colonnes choisit dans cette Variable Tableau)
j' ai ajouter les deux fichier identique (avec même codes) :
format excel 2003
format excel 2007
J'ai repérer les doublons dans la Variable tableau, crée un compteur pour les Noms en doubles et restitué cette liste sans les doublons.
Sur une Variable tableau (à deux dimension) comment chosir les colonnes que lon veux exporter vers excel sans exporter tous le tableaux vers excel ?
Exemple :
temp3(1 to 13, 1 to 5)
‘ Ici ont exporte tous le Tableau en mémoire vers excel.
Range("G1").Resize(UBound(temp3, 1), UBound(temp3, 2)) = temp3 / vrais car c'est votre exemple
‘ Ici J'aimerais juste la colonne 3 de la Variable Tableau
Range("G1").Resize(3,3) = temp3 / faux
' Ici j'aimerais juste les colonnes 2 à 3 de la Variable Tableau.
Range("G1").Resize(2,4) = temp3 / faux
Voici le code qui traite les doublons, la couleur est une astuce je sais pas si elle est bien appliquer ?
Code :
VB:
Sub SansDoublonsF2()
' Nettoyage
Range(Cells(1, 4), Cells(13, 14)).Clear
' test de la feuil 2
Dim temp1()
' temp1() = plage de la feuil2 mise en mémoire dans le tableau
' soit cellule A1:C13
F = Range("A65536").End(xlUp).Row
temp1 = Range(Cells(1, 1), Cells(F, 3))
Dim temp2()
' temp2() = stockage d'un Compteur + nom
' si déjà rencontrer dans la liste
' soit taile pour stockage :
' 13 lignes sur 2 colonnes --->> soit temp2(1 to 13, 1 to 2)
ReDim temp2(1 To F, 1 To 2)
For i = 1 To 13
d = i + 1
For j = d To 13
If temp1(i, 3) = temp1(j, 3) Then
temp2(j, 1) = temp2(j, 1) + 1
temp2(j, 2) = temp1(j, 3)
Cells(j, 5).Interior.Color = 255
End If
Next j
Next i
' Restitution des données (par exemple ici j'aurais aimer juste la colonne 1 = compteur)
' mais je sais pas faire alors j'ai tous exporté ?
Range("D1").Resize(UBound(temp2, 1), UBound(temp2, 2)) = temp2
' Nouveau tableau pour réstitué que les données sans doublons
' je reprend les donner sur la feuil2 et je recomence je stock
' la plage de la feuil2 en mémoire dans un tableau temp3()
' soit un tableau de 13 lignes sur 5 colonnes A1:E13
temp3 = Range(Cells(1, 1), Cells(F, 5))
For i = 1 To 13
If temp3(i, 4) <> Empty Then ' efface tous
temp3(i, 1) = Empty ' j'efface les donner (en mémoire) = ex : cellule A1
temp3(i, 2) = Empty ' j'efface les donner (en mémoire) = ex : cellule B1
temp3(i, 3) = Empty ' j'efface les donner (en mémoire) = ex : cellule C1
temp3(i, 4) = Empty ' j'efface les donner (en mémoire) = ex : cellule D1
temp3(i, 5) = Empty ' j'efface les donner (en mémoire) = ex : cellule E1
Else ' efface le compteur et nom
temp3(i, 4) = Empty ' j'efface les donner (en mémoire) = ex : cellule D1
temp3(i, 5) = Empty ' j'efface les donner (en mémoire) = ex : cellule E1
End If
Next i
' Je restitu le tableau (ici j'aurais juste voulu restituer les colonnes :
' - 1 à 3 mais je ne sais pas faire alors j'ai tous restitué = 1 à 5.
' si j'avais su restitué la colonne 1 à 3 j'aurais évité cette opération dans
' la boucle inutile ici :
' Else ' efface le compteur et nom
' temp3(i, 4) = Empty ' j'efface les donner (en mémoire) = ex : cellule D1
' temp3(i, 5) = Empty ' j'efface les donner (en mémoire) = ex : cellule E1
Range("G1").Resize(UBound(temp3, 1), UBound(temp3, 2)) = temp3
' Si vous avez une solution je serais content d'apprendre encore davantage
' merci
End Sub
Dans cette exemple j'aimerais supprimer ces phase intermédiare car Je ne comprends pas comment faire par selection directe de colonne dans la Variable Tableau et je suis obliger de passer par des étapes intermédiaire (Tableaux intermédiare) est cela alourdi le code pour la maintanabilité.
Je sais faire avec le dictionnaire Set Mondico = CreateObject("Scripting.Dictionary"), mais ces en tableaux a deux dimension que j'ai besoin.
Je vous remercie pour votre aide, en espèrent que mon poste proffite a d'autre par la même occasion est aussi par la richesse de se site qui fait que l'on apprend toujours un peux plus chaque jours.
Je tiens aussi à remercier, Misange, MichD et MJ13, Dranred qui m'on permis d'avancer et de comprendre la Variable Tableau qui est complexe mais très riche en éfficacité, grace à leur aide.
Laurent
Pièces jointes
Dernière édition: