Pb ecriture sur feuilles

Bonsoir le forum

Je viens vers vous pour une aide d' ecriture sur feuille, je m' explique.J' ai recupéré sur un forum un code que j' ai adapté pour pouvoir copier le contenu de qq colonne dans une autre feuille mais de manierer discontinue à partir de la prmiere ligne vide de la colonne A en prenant en compte les cellules vides.

copie le contenu de la colonne A en A

copie le contenu de la colonne B en H

copie le contenu de la colonne C en I

copie le contenu de la colonne D en E

copie le contenu de la colonne E en E

copie le contenu de la colonne F en D

Voici le code

Sub Transfert_Colonne()
 Dim A, B, C, D, E, F, G, H,I
 Dim F1 As Worksheet, F2 As Worksheet, DerLig As Long, LigDep As Long

 Set F1 = Worksheets("Tempo")
 Set F2 = Worksheets("Ecritures")

 DerLig = F1.Range("A" & Rows.Count).End(xlUp).Row

 With F1

 a = .Range("A1:A" & DerLig)   
 B = .Range("B1:B" & DerLig)   
 C = .Range("C1:C" & DerLig)   
 D = .Range("D1:D" & DerLig)
 E = .Range("E1:E" & DerLig)
 F = .Range("F1:F" & DerLig)

 End With

 LigDep = F2.Range("A" & Rows.Count).End(xlUp).Row + 1

 With F2
 .Range("A" & LigDep).Resize(UBound(a)) = A  ' copie le contenu de la colonne A en A
 .Range("H" & LigDep).Resize(UBound(B)) = B   ' copie le contenu de la colonne B en H
 .Range("I" & LigDep).Resize(UBound(C)) = C   ' copie le contenu de la colonne C  en I
 .Range("E" & LigDep).Resize(UBound(D)) = D   ' copie le contenu de la colonne D  en E
 .Range("F" & LigDep).Resize(UBound(E)) = E   ' copie le contenu de la colonne E  en E
 .Range("D" & LigDep).Resize(UBound(F)) = F   ' copie le contenu de la colonne F  en D
 End With

End Sub

Le code fonctionne mais à l' envers la copie se fait mais à la fin fu fichier. Merci d' avance pour l' aide que vous pouvez m' apporter.

Valo

Bonjour,

Je ne suis pas certain d'avoir tout compris!?

Tu demandes à Excel de copier les données en fin de feuille.

LigDep = F2.Range("A" & Rows.Count).End(xlUp).Row + 1

Tu peux remplacer (exemple) par

LigDep=2

Et des données seront copiées à partir de la ligne 2.

Cdlt.

Bonjour Jean-Eric

Justement le code ecrit les donnéees en fin de fichier, je voudrai le modifier pour qu' il puisse écrire en debut de fichier à partir de la colonne A premiere ligne vide, ce que je n' arrive pas à faire.

Cdlt

Re,

Peux-tu joindre un fichier exemple?

Cdlt.

Bonjour jean-Eric et le forum

Voici un fichier exemple fait rapidement.En jouant le code sur ce fichier j' ai remarque que les ecritures commencaient effectivement en haut contrairement à mon fichier original. (je pense que sur mon fichier il doit y avoir un pb de formatage de cellules). Je regarderai.

Sur ce fichier basique la feuille Ecritures(2) est la copie pour comparaison de l' insertion des données

ON remarque que sur la feuille Ecritrures l' insertion des données se fait sur la ligne 3

et normalement j' aurais voulu que cette insertion se fasse à partir de la premiere ligne vide de la colonne A

Cdt

13classeur2.zip (48.73 Ko)

Bonjour,

Modifie le - par le + dans ta définition de LigDep.

LigDep = F2.Range("A" & Rows.Count).End(xlUp).Row + 1

Cdlt.

Rebonjour Jean-Eric et le forum.

J' ai fait le test suivant j' ai selectionne toute la feuille original - Copie et fait une collage spacial valeur sur une autre feuille et j' ai testé le code et il fonctionne correctement. En conclusion c' est bien un pb de formatage sur l' Original, je vais la refaire. Merci pour tes conseils.

Cdt

Rechercher des sujets similaires à "ecriture feuilles"