macro copier vers dernière ligne d'un tableau

LionelF

XLDnaute Nouveau
Bonjour Messieurs .....Mesdames.
Je vous solicite car j'aimerai créer une macro pour automatiser une procédure de "copier-coller " d'une série de lignes situées dans un onglet"feuil1" vers un onglet " Base ali GMT" du meme classeur excel 2007.
J'aimerai que ces lignes soient collées à partir de la dernière ligne non vide de la colonne "B" , en l'ocurence pour mon exemple à la cellule "B282".Mon problème étant d'ajouter mes lignes au fur et à mesures.
A noter que ce tableau de l'onglet"feuil1" n'a pas toujours le meme nombre de lignes.

Pour vous vous informer de mon niveau avec Excel , je sais créer des macros avec l'enregistreur , mais pour ce qui est du langage VB ; pour moi c'est du chinois.
Il y aurrait il un VB pour les nuls et débutants comme moi?

Je vous joints mon petit fichiers xlsm.

Merci d'avance

Lionel
 

Fichiers joints

Bebere

XLDnaute Barbatruc
Re : macro copier vers dernière ligne d'un tableau

bonjour Lionelf
bienvenue
une possibilité
Public Sub Feuil2VersFeuil1()
Dim Rng As Range, L As Long, Li As Long

Set Rng = Feuil2.UsedRange 'feuil1 codename Feuil2

With Feuil1 'Base ali GMT codename Feuil1
L = .Range("A65536").End(xlUp).Row + 1
Rng.Copy Destination:=.Range("B" & L)
Li = .Range("B65536").End(xlUp).Row
.Range("A" & L - 1 & ":A" & Li) = CDate(Date)
.Range("A" & L - 1 & ":A" & Li).NumberFormat = "mmm-yy"
End With
Feuil2.UsedRange.Delete 'efface feuil1 codename Feuil2
End Sub
 

LionelF

XLDnaute Nouveau
Re : macro copier vers dernière ligne d'un tableau

Merci , mais cela ne fonctionne pas , j'ai comme message d'erreur " erreur de compilation....end sub" ????

ayant essayer de copier votre proposition suivante , celà comme:


Sub CopierVersBase()


Public Sub Feuil2VersFeuil1()
Dim Rng As Range, L As Long, Li As Long

Set Rng = Feuil2.UsedRange 'feuil1 codename Feuil2

With Feuil1 'Base ali GMT codename Feuil1
L = .Range("A65536").End(xlUp).Row + 1
Rng.Copy Destination:=.Range("B" & L)
Li = .Range("B65536").End(xlUp).Row
.Range("A" & L - 1 & ":A" & Li) = CDate(Date)
.Range("A" & L - 1 & ":A" & Li).NumberFormat = "mmm-yy"
End With
Feuil2.UsedRange.Delete 'efface feuil1 codename Feuil2

End Sub



Lionel
 

Bebere

XLDnaute Barbatruc
Re : macro copier vers dernière ligne d'un tableau

l'erreur vient de là
Sub CopierVersBase()
Public Sub Feuil2VersFeuil1()
il faut réfléchir et bien lire
cette ligne suffit
Sub CopierVersBase()
 

LionelF

XLDnaute Nouveau
Re : macro copier vers dernière ligne d'un tableau

Oui
Effectivement , je dois bien lire avant tout.

Je vous remercie de votre aide Bebere.

Merci beaucoup
 

LionelF

XLDnaute Nouveau
Re : macro copier vers dernière ligne d'un tableau

Excuser moi de vous redemander la meme question en vous redonnant mon Fichier , car celà m'induit en erreur avec vos écritures (mm,YY) .
Je repose donc ma question :
Comment écrire une macro en recopiant la dernère cellule non vide de la colonne A de l'onglet "Base Ali GMT" , puis en la collant dans toutes les cellules vides de la meme colonne jusqu'à atteindre la meme ligne de la dernière cellule non vide de la colonne B du meme onglet "Base Ali GMT".

Excusez moi encore , mais j'avais réussi la première fois en manipulant un peu votre texte de macro.....et suite à une nouvelle manip de ma part , celà ne fonctionne plus.

Bien à vous

Lionel

je vous renvoie mon fichier xlsm
 

Fichiers joints

Bebere

XLDnaute Barbatruc
Re : macro copier vers dernière ligne d'un tableau

bonjour Lionel
voilà,mis des commentaires
Public Sub Feuil2VersFeuil1()
Dim Rng As Range, L As Long, Li As Long

Set Rng = Feuil2.UsedRange 'feuil1 codename Feuil2

With Feuil1 'Base ali GMT codename Feuil1
L = .Range("B65536").End(xlUp).Row + 1 '1ère ligne vide en colonne B
Rng.Copy Destination:=.Range("B" & L)
Li = .Range("B65536").End(xlUp).Row 'après copy,dernière cellule remplie colonne B
.Range("A" & L + 1 & ":A" & Li) = .Range("A" & L) 'CDate(Date)
.Range("A" & L + 1 & ":A" & Li).HorizontalAlignment = xlCenter
End With
Feuil2.UsedRange.Delete 'efface feuil1 codename Feuil2
End Sub
ps:un bonjour fait toujours plaisir
 

LionelF

XLDnaute Nouveau
Re : macro copier vers dernière ligne d'un tableau

Oui.......Bonsoir effectivement.Veuillez m'excuser.
Je ne comprends pas , cela ne fonctionne pas.
Dans les faits , la cellule à copier n'est pas une date , c'est juste une valeur.La valeur indiqué dans la cellule est "report 01/04/2005-30/04/2005". Cela change biensur ensuite.On prend juste en compte les cellules non vides à droite pour continuer de copier vers le bas.
Quand j'execute votre macro , c'est une grande plage qui se copie.
 

LionelF

XLDnaute Nouveau
Re : macro copier vers dernière ligne d'un tableau

Re Bonsoir

Je vous marque ce que j'ai réussi à ecrire dans ma macro. Il me manque le reste que j'écris comme je le voudrais.

Sub CopierDernierePeriode()
'
' CopierDernierePeriode Macro
'

'
Sheets("Base ali GMT").Select
Columns("A:A").Select
Selection.End(xlDown).Select
Selection.Copy
Et maintenant , j'aimerais coller dans les cellules "la première cellule vide en partant du haut de la colonne A jusqu'à la cellule de la colonne A qui correspond à la dernière cellule non vide de la colonne B , à savoir de A283 jusqu'à A302 pour cette exemple.Ensuite , au fur et à mesure que je remplierai , les sélections changeront .

End Sub


J'ai réussi à bidouiller d'autres macros dans mon fichier xlsm , mais là , je suis un peu désabusé.

Merci à vous

Lionel
 

Bebere

XLDnaute Barbatruc
Re : macro copier vers dernière ligne d'un tableau

Lionel
tu veux 2 codes séparés
un code pour copier les données de Feuilé vers Base ali GMT et un autre pour compléter la colonne A de Base ali GMT
 

LionelF

XLDnaute Nouveau
Re : macro copier vers dernière ligne d'un tableau

Bebere
J'aimerai juste le code pour compléter la colonne A de "Base ali GMT" jusqu'à ce qu'il n'y ai plus de cellules non vide de la colonne B de "Base ali GMT".
C'est pour celà que j'ai commencé une macro où je copie la dernère cellule non vide de la colonne A , j'ai pu le faire avec l'enregistreur de macro.Mais c'est après que celà coince.
 

Bebere

XLDnaute Barbatruc
Re : macro copier vers dernière ligne d'un tableau

voilà,si bien compris

Public Sub CompleteA()
Dim L As Long, Li As Long

With Feuil1 'Base ali GMT codename Feuil1
L = .Range("A65536").End(xlUp).Row + 1 '1ère cellule vide en colonne A
Li = .Range("B65536").End(xlUp).Row 'dernière cellule non vide colonne B
.Range("A" & L & ":A" & Li) = .Range("A" & L - 1)
.Range("A" & L - 1 & ":A" & Li).HorizontalAlignment = xlCenter
End With

End Sub
 

LionelF

XLDnaute Nouveau
Re : macro copier vers dernière ligne d'un tableau

Oui , c'est exactement ce qui me manquait.
Il va me falloir du temps pour comprendre votre macro , mais elle fonctionne très bien.

Merci beaucoup pour votre patience face à mon ignorance.
Amicalement

Lionel
 

Haut Bas