Problème copier coller VBA

Bonjour a tous!

Je sollicite votre aide.

En effet, à l'aide d'un code VBA je copie plusieurs tableaux dans une seule feuille. (Feuil1)

Cependant mon tableau de la feuille "Onduleurs" tout comme le tableau de la feuille "Tension de chaînes" est variable et dépend du nombre inscrit dans la case P1 (ex: P1 = 10 alors mon tableau fera 10 lignes). Il s'agit d'une fonction "afficher/cacher".

Lors du copié collé, le code ne prend pas en compte cette fonction et me copie l'intégralité des lignes (211).

J'aimerai aussi, copier ma feuille "page de garde" avant ces différents tableaux, tout en haut de la "Feuil1".

En espérant avoir été clair, n'hésitez pas à me poser des questions si ce n'est pas le cas.

En vous remerciant et vous souhaitant une bonne semaine!

Cordialement, Léo.

9tests.xlsm (178.58 Ko)

Bonjour leo

Pour ne copier que les lignes visibles , je pense que c'est cela

Sub CreationDeLaListe()
dlig = Sheets("Onduleurs").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To dlig
    Sheets("Onduleurs").Range("A" & i & ":L" & i).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil1").Range("A" & i)
Next
'Sheets("Dossiers tech & aff normatif").Range("ma_liste1").Copy Destination:=Sheets("Feuil1").Range("a1")
'Sheets("Onduleurs").Range("ma_liste2").Copy Destination:=Sheets("Feuil1").Range("a20")
dlig = Sheets("Dossiers tech & aff normatif").Range("A" & Rows.Count).End(xlUp).Row
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To dlig
    dlf = dlf + 1
    Sheets("Dossiers tech & aff normatif").Range("A" & i & ":L" & i).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
Next
End Sub

A tester

Bye

Bonjour Patty5046.

Merci de t'intéresser de nouveau à mon problème. Ton programme marche, mais j'ai encore quelque soucis...

Je te remet en PJ le documennt que j'ai un peu modifier. J'aimerai copier les tableaux dans l'ordre A, B, C.... L (Toiture).

Pour la feuille "Onduleurs" j'aimerai pouvoir conserver les 2 dernières lignes "Avant de continuer, réarmer les interrupteurs DC, et fermer les boites de jonction DC" ainsi que "Remettre l’onduleur sous tension en respectant la procédure de mise sous tension du fabricant".

En plus des autres tableaux à copier, j'aimerai pouvoir conserver le bon nombre de lignes pour la feuille "Onduleurs" et pour la feuille "Tensions de chaines" car ces deux feuilles sont synchronisées. Si P1 = 10 alors j'obtiendrai 10 lignes das la feuille "onduleurs" et 10 lignes dans la feuille "tensions de chaînes".

En te remerciant et en te souhaitant une bonne semaine.

Cordialement.

9test-2.xlsm (115.80 Ko)

Re

Il semblerait que cela fasse ce que tu veux pour la copie des feuilles vers Feuil1 en ne prenant en compte que les lignes visibles dans Onduleurs et Tensions chaîne:

Sub CreationDeLaListe()
DernLigne = Range("A" & Rows.Count).End(xlUp).Row
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Dossiers tech & aff normatif").Range("ma_liste1").Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
dlig = Sheets("Onduleurs").Range("A" & Rows.Count).End(xlUp).Row
For i = 1 To dlig
    Sheets("Onduleurs").Range("A" & i & ":L" & i).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
    dlf = dlf + 1
Next

ligf1 = Sheets("Onduleurs").Range("B" & Rows.Count).End(xlUp).Row - 1
ligf2 = Sheets("Onduleurs").Range("B" & Rows.Count).End(xlUp).Row
Sheets("Onduleurs").Range("B" & ligf1 & ":B" & ligf2).Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Mise à la terre").Range("ma_liste3").Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("TDGS AC").Range("ma_liste4").Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Coffrets DC et BJ").Range("ma_liste5").Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
dlig = Sheets("Tensions chaînes").Range("B" & Rows.Count).End(xlUp).Row
For i = 1 To dlig
    Sheets("Tensions chaînes").Range("A" & i & ":L" & i).SpecialCells(xlCellTypeVisible).Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
    dlf = dlf + 1
Next
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("PDL").Range("liste2").Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Monitoring").Range("liste3").Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
dlf = Sheets("Feuil1").Range("A" & Rows.Count).End(xlUp).Row + 1
Sheets("Toiture").Range("liste4").Copy Destination:=Sheets("Feuil1").Range("A" & dlf)
End Sub

A toi de voir

Waouh ! merci c'est vraiment génial. J'ai très légèrement modifier le code afin d'avoir un espace d'une ligne entre chaque tableau copié.

Cependant, j'ai un problème de taille, comment coller tous ces tableaux en conservant leur mise en forme original ?

De plus, j'aimerai ajouter la feuille "Page de garde" et la feuille "rappel de sécurité" au début en en fin de ma feuille "Feuil1".. Je ne sais pas par ou m'y prendre..

En te remerciant encore une fois, pour le temps que tu passes à m'aider!!

Cordialement, Léo.

Voici la PJ, pardon.

4test-2.xlsm (109.21 Ko)
Rechercher des sujets similaires à "probleme copier coller vba"