1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| Sub test()
With ActiveSheet
With Union(.Range("A2", .Range("A2").End(xlDown)), .Range("C2", .Range("C2").End(xlDown)))
x = .Rows.Count
.Select
.Copy Destination:=.Cells(Rows.Count - x, Columns.Count - 2)
'le fait de copier l'union vers une destination dans le meme ou un autre sheet te merge les colonnes
End With
' on recupere le tableau avec le .value de la destination
With .Cells(Rows.Count - x + 1, .Columns.Count - 2).Resize(x, 2)
tableau = .Value
.Clear
End With
End With
'ici on bien notre tableau et les valeur et type de valeur sont identiques a la plage initiale
'regardons voir
Cells(2, 6).Resize(UBound(tableau), UBound(tableau, 2)) = tableau
End Sub
Sub test2()
tableau = Union(Range("A2", Range("A2").End(xlDown)), Range("C2", Range("A2").End(xlDown))).Value
MsgBox UBound(tableau, 2)
'il est clair qu'ici la colonne b n'est pas suprimée on ne peut pas injecter des conlonne discontinues dans une variable tableau
' la variable tableau se dimentionne en fonction de la 1°cells et la derniere en l'occurence ici "C6" donc 3 colonne
End Sub
Sub test3()
With ActiveSheet: Set P = .Range("A2:C" & .Cells(Rows.Count, 1).End(xlUp).Row): End With
Vlig = Evaluate("ROW(1:" & P.Rows.Count & ")")
tableau = Application.Index(P.Value, Vlig, Array(1, 3))
'visualisation sur le sheets ou utilisation
Cells(2, 6).Resize(UBound(tableau), UBound(tableau, 2)) = tableau
'*********************************************************************
'ici donc visuellement ca marche mais tes donnes sont du texte
'donc a reconvertir pour travailler avec en tant numeric si ca en est
'date si ca en est etc......
'cette methode n'est destiné a produire une liste en format texte pour remplir une listebox multicolonne par exemple
'********************************************************************
End Sub |
Partager