[Résolu]Copie de la dernière ligne saisie

  • Initiateur de la discussion Initiateur de la discussion adidu44
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

A

adidu44

Guest
Bonjour,

Je me lancant dans des maccros excel pour simplifiez mon travail et celui de mes collègues de bureau mais je débute en VBA donc je rencontre qques soucis.

J'ai déjà réussi à faire des maccros simples mais celle que je cherche à faire me donne du fil à retordre alors j'espère pouvoir compter sur votre aide pour m'aider.

Voilà je remplis presque tous les jours un tableau Excel concernant des projets avec les différentes caractéristiques qui leurs sont propres. Chaque nouveau projet se trouve une ligne, j'ai donc beaucoup de lignes ....

Après avoir remplis ce tableau je dois resaisir toutes les informations précédement tapées sur une fiche que je transmets aux ateliers.

Je cherche donc à réaliser une maccro qui me copie/colle les informations saisies mais je coinces car je ne sais pas comment faire comprendre à la maccro qu'elle doit copier la toute dernière ligne saisie.

Merci d'avance à tous ceux qui porteront attention à ma question et si vous avez des questions je peux y répondre.

Adidu44
 

Pièces jointes

Dernière modification par un modérateur:
Re : Copie de la dernière ligne saisie

Bonjour adidu44 🙂

Bienvenue parmi nous 🙂

Cette dernière ligne est à copier à quel endroit ? (si ça se trouve d'ailleurs tu n'as même pas besoin d'une macro pour faire ça)

Pour nous éviter de reconstituer un exemple qui ne correspondra pas forcément à ta structure, il serait bien que tu joignes un extrait de fichier avec simplement quelques lignes, contenant la feuille où tu saisis tes lignes, la feuille qui contient ta fiche atelier à remplir. (et explique bien ce que tu veux reporter comme info dans ta fiche atelier)

Bien à toi,

mth
 
Re : Copie de la dernière ligne saisie

Bonjour,

Si la dernière ligne saisie se trouve être également la dernière ligne remplie de ta feuille (ce qui est souvent le cas), tu peux entrer ce code :

Dans cet exemple tu copies la dernière ligne du tableau qui comprend 8 colonnes et démarre en colonne C et tu viens la coller dans le feuille 'Arrivée' en cellule A1.


NbColonnes = 8
range("C" & [C65536].end(xlup).row).Resize(1, NbColonnes).copy Destination:=Sheets("Arrivée").Range("A1").Resize(1, NbColonnes)
 
Dernière édition:
Re : Copie de la dernière ligne saisie

Merci pour vos réponses, je vien de joindre un exemple basique de ce que contient mon tableau mais la feuille où je copie les données se trouve normalement dans un auter fichier Excel à part.
 
Re : Copie de la dernière ligne saisie

Re,

Si l'autre classeur est ouvert, tu peux juste adapter le code précédent comme ceci :
Code:
NbColonnes = [COLOR="Orange"]8[/COLOR]
range("[COLOR="Red"]C[/COLOR]" & [[COLOR="Red"]C[/COLOR]65536].end(xlup).row).Resize(1, NbColonnes).copy Destination:=Workbooks("[COLOR="RoyalBlue"]Lautrefichier.xls[/COLOR]").Sheets("[COLOR="Green"]Arrivée[/COLOR]").Range("[COLOR="Green"]A1[/COLOR]").Resize(1, NbColonnes)
 
Re : Copie de la dernière ligne saisie

Re,

C'est déjà plus la même question.

Ds cet exemple, si tu veux copier la cellule 1 en A1, la cellule 2 en C4, la cellule 3 en D5... tu peux opérer comme ceci :
Code:
Dim c As Range, Dest As Variant
Dest = Array("[COLOR="SeaGreen"]A1[/COLOR]", "[COLOR="SeaGreen"]C4[/COLOR]", "[COLOR="SeaGreen"]D5[/COLOR]") '... tu mets toutes tes références à la suite ici, autant que t'as défini de colonnes dans nbColonnes
NbColonnes = [COLOR="SandyBrown"]3[/COLOR] ' à adapter
Set c = Range("[COLOR="Red"]C[/COLOR]" & [[COLOR="Red"]C[/COLOR]65536].End(xlUp).Row).Resize(1, NbColonnes)
For t = 1 To NbColonnes
    c.Cells(t).Copy Destination:=Workbooks("[COLOR="RoyalBlue"]lautre.xls[/COLOR]").Sheets("[COLOR="Lime"]Arrivée[/COLOR]").Range(Dest(t - 1))
Next t
 
Re : Copie de la dernière ligne saisie

Re,

Ton code fonctionne mais il en copie pas ce qu'il y a dans les cases il colle des cellules vides à la place, j'ai beau regarder je ne vois pas pourquoi.

Mais merci pour ton aide.

Code:
Sub ESSAI()


Dim c As Range, Dest As Variant
Dest = Array("F43", "G44", "I45", "J43", "F46") '... tu mets toutes tes références à la suite ici, autant que t'as défini de colonnes dans nbColonnes
NbColonnes = 5 ' à adapter
Set c = Range("A" & [A65536].End(xlUp).Row).Resize(1, NbColonnes)
For t = 1 To NbColonnes
    c.Cells(t).Copy Destination:=Workbooks("FichierArrivé.xls").Sheets("A").Range(Dest(t - 1))
Next t

End Sub
 
Dernière modification par un modérateur:
Re : Copie de la dernière ligne saisie

Re,

Entre ces 2 lignes :
Code:
Set c = Range("A" & [A65536].End(xlUp).Row).Resize(1, NbColonnes)
For t = 1 To NbColonnes

place un
Code:
msgbox c.address
pour t'assurer que la zone que la macro doit copier est bonne.
 
Re : Copie de la dernière ligne saisie

Re,

excusez moi de ne pas m'être reconnecté plus tôt.

J'ai bien modifier votre code selon vos dires mais les cellules copiés sont toujours vides (seul l'encadrement est collé).
J'ai bien la boite de dialogue qui s'ouvre mais elle indique:

"$A$2668:$E$2668"

Ces positions ne sont pas celle d'arrivées.

Merci encore pour votre aide et patience.
 
Re : Copie de la dernière ligne saisie

Bonsoir,

J'ai donc 2 questions :

- Les données que tu veux coller se trouvent-elles bien dans les cellules A2668 à E2668 ?

- Est ce que tu lances bien cette macro depuis la feuille où tu veux récupérer les valeurs à copier ?

En attendant de te relire
 
Re : Copie de la dernière ligne saisie

Bonsoir,

Les cellules que je désire copier ne se trouve pas à ces coordonnées et je lance la macro depuis le fichier où sont saisis les données et non pas où je souhaite qu'elles arrivent.

Cela change-t-il quelque chose ?
 
Re : Copie de la dernière ligne saisie

Re,

Avec ces indications, je crois pouvoir te dire qu'il faudrait dans ton fichier source, que tu regardes les données que tu as en cellule A2668 et que tu nous le fasses savoir. Peut-être y a-t-il uniquement une formule, mais idem, on a besoin de le savoir...

Parce que ma macro copie la dernière cellule non vide de la colonne A de ta feuille active et manifestement elle trouve A2668 au lieu d'une autre. Donc jète un oeil pour voir ce qui traîne à cette adresse. Si tu vois rien, delete la ligne et tiens nous au courant.
 
Re : Copie de la dernière ligne saisie

Bonjour, j'ai supprimé la ligne 2668 et cela a l'air de fonctionner.
Je vous tiendrais au courant si cela continu de fonctionner ou non.
Merci encore pour votre aide.
 
Dernière modification par un modérateur:
Re : Copie de la dernière ligne saisie

Bonjour,

la maccro marche super bien mais j'aurais 2 petites questions :

Je souhaiterai savoir si il est possible de copier/coller les cellules sans le cadre car ma feuille d'arrivée est sans quadrillage ?
Et est-il possible de copier le contenu d'une cellule vers une cellule fusionnée ?

Merci d'avance

PS: j'ai réussi à faire ma maccro pour retiré les cadres.
 
Dernière modification par un modérateur:
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Retour