Copie automatique

Fire 2007

XLDnaute Nouveau
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
 

Staple1600

XLDnaute Barbatruc
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:

Gorfael

XLDnaute Barbatruc
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+
 

mécano41

XLDnaute Accro
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
 

Discussions similaires

Réponses
27
Affichages
842

Statistiques des forums

Discussions
314 013
Messages
2 104 542
Membres
109 071
dernier inscrit
lionel57800