Bonjour
Je n'arrive désespérément pas a obtenir la ligne de la dernière valeur d'une table, mais je comprends mal comment fonctionne "range.find"
Je cherche a concaténer des tableaux de longueur variable (pour le moment tous avec 200 lignes de formule, mais les formules renvoient une valeur vide ("") quand il n'y a pour le moment plus de valeur a traiter.
Je cherche donc a obtenir la première ligne ou la formule renvoie cette valeur vide, pour dimensionner ma range a copier-coller.
Voici mon sub:
"xRg" renvoyant la range contenant toutes les formules
Et je cherche a passer a "xFinTab" qui me renverrais que les valeurs non vide
Je copie un tableau de DH:DJ Vers A:C (avec une première ligne contenant le nom qui n'est pas a copier)
Le soucis est ligne 11 qui ne fonctionne pas comme souhaité, je remplace ensuite xRg, par xFinTab, une fois que cela fonctionnera
Merci de votre aide !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 Sub Synthese() 'Concatenation des différents tableaux Dim xRg, xCopy, xFinTab As Range, sh As Worksheet, xDecal As Integer Sheets("Combo").Range("A2:X" & Rows.Count).EntireRow.Delete 'Cleaning For Each sh In Worksheets If sh.Name <> "Combo" And sh.Name <> "Index" Then With sh Set xRg = .Range("DH" & Rows.Count).End(xlUp) 'Paramétre original, renvoie la range avec toutes les valeurs, formules comprises) Set xFinTab = .Range("DH" & Rows.Count).End(xlUp).Find("", , xlValues, , , xlPrevious) If xRg.Row > 1 Then 'Row =1 => pas de valeur Set xCopy = Sheets("Combo").Range("DH" & Rows.Count).End(xlUp).Offset(1) .Range("DH2:DJ" & xRg .Row).Copy xCopy.Offset(xDecal, -111).PasteSpecial Paste:=xlPasteValues 'Offset pour décaler de DH a A (-111) , et de concaténer xDecal = xDecal + xRg .Row End If End With End If Next sh End Sub
Partager