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
 

Pièces jointes

  • Base Ali GMT.xlsm
    49.8 KB · Affichages: 38
  • Base Ali GMT.xlsm
    49.8 KB · Affichages: 32

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
 

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
 

Pièces jointes

  • Base Ali GMT.xlsm
    58.9 KB · Affichages: 41
  • Base Ali GMT.xlsm
    58.9 KB · Affichages: 37

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
 

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
 

Discussions similaires

Statistiques des forums

Discussions
312 023
Messages
2 084 716
Membres
102 636
dernier inscrit
TOTO33000