• Initiateur de la discussion Initiateur de la discussion Fire 2007
  • 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 !

F

Fire 2007

Guest
Bonjour !

je connais bien excel mais très peu le langage VBA et là je suis bloqué.


J'ai, sur une feuille, diverses données sur des cellules différentes et non voisines : ces données peuvent être changées grâce à une liste de choix déroulante (créée avec la barre d'outils "Formulaires").
Je cherche une macro qui, une fois affectée à un bouton, me permette de recopier automatiquement les données concernées sur la première ligne libre suivante d'une autre feuille et ce à chaque clic sur le bouton.


Exemple de ce qui est écrit dans les cellules d'origine sur Feuil1 :

dans A1 "2 avril 2007"
dans B2 "Jaune"
dans C2 "250"
dans C3 "390"
dans C4 "12"
dans C6 "10"
dans C7 "30"
dans C8 "12"
dans C9 "40"
dans C11 "308500"
dans E11 "600000"

Ensuite je clique sur mon bouton et ces données se retrouvent sur une même ligne ; cette ligne de copie doit être la première ligne libre suivante de la Feuil2 (genre feedback)


Si qqn a une solution ... parce que moi je rame un peu.


Merci d'avance



Bye
 
Re : Copie automatique

Bonjour


De tête (donc à verifier et et tester)

Sub recopie()
DerLig=Sheets(2).Range("A65356").End(xlUp).Row
Sheets(1).Range("A1;B2;C2;C3;C4;C6;C7;C8;C9;C11;E11").Copy
Sheets(2).Range(DerLig,1).Paste
End sub

Aprés vérification ca marche pas
 
Dernière édition:
Re : Copie automatique

Salut Staple1600 et le forum

Sub recopie()
Dim X As Long
X = Sheets("Feuil2").[A65536].End(xlUp).Row + 1
Sheets("Feuil1").[A1].Copy Sheets("Feuil2").Range("A" & X)
Sheets("Feuil1").[B2].Copy Sheets("Feuil2").Range("B" & X)
Sheets("Feuil1").[C2].Copy Sheets("Feuil2").Range("C" & X)
Sheets("Feuil1").[C3].Copy Sheets("Feuil2").Range("D" & X)
Sheets("Feuil1").[C4].Copy Sheets("Feuil2").Range("E" & X)
Sheets("Feuil1").[C6].Copy Sheets("Feuil2").Range("F" & X)
Sheets("Feuil1").[C7].Copy Sheets("Feuil2").Range("G" & X)
Sheets("Feuil1").[C8].Copy Sheets("Feuil2").Range("H" & X)
Sheets("Feuil1").[C9].Copy Sheets("Feuil2").Range("I" & X)
Sheets("Feuil1").[C11].Copy Sheets("Feuil2").Range("J" & X)
Sheets("Feuil1").[E11].Copy Sheets("Feuil2").Range("K" & X)
End Sub

Pas réellement moyen de raccourcir, puisque tu veux une transposition discontinue

A+
 
Re : Copie automatique

Bonjour,

Avec cela ça marche (la copie commence en B2 sur feuil2. On peut commencer ailleurs en ajoutant des tests). Evidemment, ici on copie toujours les mêmes valeurs.

Private Sub Essai()
Worksheets("feuil1").Activate
Set plage = Union(Range("A1"), Range("B2"), Range("C2"), Range("C3"), Range("C4"), Range("C6"), Range("C7"), Range("C8"), Range("C9"), Range("C11"), Range("E11"))
n = Sheets("feuil2").Range("B65536").End(xlUp).Offset(1, 0).Row
For Each x In plage
x.Copy (Worksheets("feuil2").Range("IV" & n).End(xlToLeft).Offset(0, 1))
Next x
End Sub

Cordialement
 
- 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

Réponses
16
Affichages
505
Retour