Re,
Sub FacturesRéglées()
Dim TFr(), ls(1), Frel, col, tst%, f%, j%, fr%, n&, i&
col = Array(1, 2, 3, 5, 7, 8, 9, 10, 18, 19, 21)
Frel = Split("Relances HG;Relances G", ";"): tst = 19
For f = 0 To 1
With Worksheets(Frel(f))
n = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = 7 To n
If LCase(.Cells(i, tst)) = "réglé" Then
ReDim Preserve TFr(10, fr)
For j = 0 To 10
TFr(j, fr) = .Cells(i, col(j)).Value2
Next j
ls(f) = ls(f) & ";" & i: fr = fr + 1
End If
Next i
End With
col = Array(1, 2, 50, 3, 4, 5, 6, 7, 13, 14, 16)
tst = 14
Next f
Application.ScreenUpdating = False
With Worksheets("Factures réglées")
n = .Cells(.Rows.Count, 1).End(xlUp).Row + 1
.Cells(n, 1).Resize(fr, 11).Value = WorksheetFunction.Transpose(TFr)
End With
For f = 0 To 1
If ls(f) <> "" Then
ls(f) = Split(ls(f), ";")
With Worksheets(Frel(f))
n = .Cells(.Rows.Count, 1).End(xlUp).Row
For i = UBound(ls(f)) To 1 Step -1
.Rows(ls(f)(i)).Delete
Next i
End With
End If
Next f
End Sub
Affectée à un bouton sur la feuille Factures réglées.
Méthode utilisée : on constitue un tableau des lignes à transférer.
3 boucles imbriquées : boucle sur chacune des feuilles (Tableau des noms de feuilles, parcouru avec variable f)
sur chaque feuille boucle sur les lignes (parcours avec variable i) : on teste la colonne ad-hoc (numéro de colonne stocké dans variable tst, qu'on actualise en fin de 1er tour de f pour la seconde feuille)
sur les lignes réglées : on incrémente le tableau TFr (variable d'incrémentation fr), on parcourt les colonnes à prélever pour affecter leur valeur aux éléments d'une ligne du tableau (les numéros de colonnes sont consignés dans un tableau Col, parcouru en utilisant la variable j, Col est actualisé pour la seconde feuille en fin de 1er tour de f)
on recueille simultanément les numéros de lignes (en vue de leur suppression ultérieure) en les concaténant dans la variable tableau ls à 2 éléments (pour chacune des feuilles) (avec un séparateur)
2e partie : on affecte le tableau sur la feuille Factures réglées, 1re cellule vide en col. A redimensionnée à la taille du tableau...
3e partie : chaque élément du tableau ls est transformé en tableau pour suppression des lignes sur chaque feuille...
C'est là que je me suis rendu compte (erreur en voulant les supprimer globalement) que les tableaux de tes feuilles étaient des tableaux Excel. J'ai donc basculé sur la méthode classique de suppression à l'unité...
Toutefois , si l'exécution s'avère un peu lente, je reprendrai l'ensemble pour tout traiter à partir des tableaux Excel.
Cordialement.