Range limitée a la dernière valeur - Concaténation
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
Code:
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 |
Merci de votre aide !