XL 2016 Copie ligne dans un Tableau sur feuille différente selon condition

Ludo76

XLDnaute Nouveau
Bonsoir à tous,

Je ne suis pas loin d'avoir finalisé mon 1er projet mais je bloque sur une formule :-(

J'ai 2 tableaux différents (définis en tant que tableau excel) et je dois copier la ligne complète (en valeur) de la feuille "RAR" (dont le nombre de ligne est variable) vers la feuille "Base_Historisation" si la cellule de la colonne I =1

j'ai trouvé sur le site une macro que j'ai inséré mais lorsque je la lance la seconde fois elle écrase tout mon archivage de la 1ere fois :

'Copie lignes Tableau_RAR vers Historisation

Dim tablo1, i&, tablo2(), n&
tablo1 = Sheets("RAR").Range("A10:Q" & Sheets("RAR").[q65536].End(xlUp).Row)
n = 0 'ajout initialisation explicite de n
For i = 1 To UBound(tablo1)
If tablo1(i, 9) = 1 Then
ReDim Preserve tablo2(16, n)
For j = 1 To 16 'ajout boucle
tablo2(j - 1, n) = tablo1(i, j) 'Modif pour incrémentation
Next j 'ajout boucle
n = n + 1
End If
Next i 'ajout i
If n Then
Sheets("Base_Historisation").[A3:H65536].ClearContents
Sheets("Base_Historisation").[A3].Resize(n, 16) = Application.Transpose(tablo2)
End If

La macro est prête a être lancé dans le fichier ci joint en cliquant sur le bouton "Terminer & Archiver RAR"

Si quelqu'un peut m'aider, merci
 

Pièces jointes

  • Test-Rapport Activité Réalisé v10.0.xlsm
    299.2 KB · Affichages: 16

Staple1600

XLDnaute Barbatruc
Bonsoir le fil,

Si j'ai bien compris la donne, essaie ta macro ainsi modifiée
VB:
Sub Test_OK()
Dim f As Worksheet
Set f = Sheets("Base_Historisation")
'Copie lignes Tableau_RAR vers Historisation
Dim tablo1, i&, tablo2(), n&
tablo1 = Sheets("RAR").Range("A10:Q" & Sheets("RAR").[q65536].End(xlUp).Row)
n = 0 'ajout initialisation explicite de n
For i = 1 To UBound(tablo1)
If tablo1(i, 9) = 1 Then
ReDim Preserve tablo2(16, n)
For j = 1 To 16 'ajout boucle
tablo2(j - 1, n) = tablo1(i, j) 'Modif pour incrémentation
Next j 'ajout boucle
n = n + 1
End If
Next i 'ajout i
If n Then
f.Cells(Rows.Count, 1).End(3)(2).Resize(n, 16) = Application.Transpose(tablo2)
End If
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
312 195
Messages
2 086 079
Membres
103 112
dernier inscrit
cuq-laet