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

Mitch

XLDnaute Occasionnel
Bonjour , J'ai une macro qui copie des cellules non contigues pour les coller sur une autre feuille . J'ai 2 souci : je voudrais les coller sur une seule ligne et ensuite m'effacer le contenu de la première feuille
voici me macro si quelqu'un peut m'aider Merci
Sub Bouton8_Clic()
Dim DerLigne As Long
Sheets("clients").Range("E3:E5:E9:I9:E11:E13:I13:E15:E17:E19").Copy
Sheets("BDD").Activate
DerLigne = Range("A65536").End(xlUp).Row + 1
Range("A" & DerLigne).Select
Selection.PasteSpecial Paste:=xlPasteValues
End Sub
 
Re : Probleme Macro

Hello Mitch,
à tester
Code:
Sub Test()
Dim Plage as Range, d as Range

Set Plage=Range("E3,E5,E9,I9,E11,E13,I13,E15,E17,E19") 'A adapter, j'ai pas compris 
quelle était l'adresse en vrai !
Set d = Sheets("BDD").Range("A65536).end(xlUp)
For t=1 to Plage.Count
    Plage.cells(t).copy destination :=d.offset(0, t-1)
Next
End Sub
 
Re : Probleme Macro

Hello Mitch,
à tester
Code:
Sub Test()
Dim Plage as Range, d as Range

Set Plage=Range("E3,E5,E7,E9,I9,E11,E13,I13,E15,E17,E19") 'A adapter, j'ai pas compris 
quelle était l'adresse en vrai !
Set d = Sheets("BDD").Range("A65536").end(xlUp)
For t=1 to Plage.Count
    Plage.cells(t).copy destination :=d.offset(0, t-1)
Next
End Sub

Salut Softmama merci de me repondre ,ça les copie bien sur une ligne le probleme c'est quelle n'y sont pas toute elle sont decaler une cellule sur deux (A2.C2.E2.G2 etc )
 
Re : Probleme Macro

Re,

Une erreur surement... J'ai tjs pas compris de quelle plage on part mais bon... Il faut que tu définisses correctement la plage à copier,j 'ai mis au pif moi E3,E5,E7... Corrige les bonnes références et ensuite essaie ceci :
VB:
Sub Test()
Dim Plage as Range, d as Range

Set Plage=Range("E3,E5,E7,E9,I9,E11,E13,I13,E15,E17,E19") 'A adapter, j'ai dit !!!
Set d = Sheets("BDD").Range("A65536").end(xlUp).offset(1,0)
For t=1 to Plage.Count
    Plage.cells(t).copy destination :=d.offset(0, t-1)
Next
End Sub
 
Re : Probleme Macro

Bonjour Softmama excuse moi je debute , je demarre de ma feuille "clients" cellule E3=nom , E5= prenom , E7=adresse , etc mais ça me copie nom=A2 , prenom=C2 , adresse=E2 de plus ça ne copie que jusqu'a la cellule E13 sans copier I9 qui ce trouve avant
autre chose ça copie aussi la mise en page ( bordure) je voudrais que le texte
Merci
 
Dernière édition:
Re : Probleme Macro

Re Mitch,

Là, on est au stade je pense, où faut vraiment que tu joignes un bout de fichier, pque, je ne parviens pas à me représenter pquoi la macro copie E13 et pas A9, et pquoi, elle va coller en A2,C2,E2 au lieu de A2,B2,C2... Y a un truc ds le fichier que j'ai besoin de voir pour comprendre la comportement de la macro, et que j'ai pas.
 
Re : Probleme Macro

Re Mitch,

Effectivement, le fichier est joint. Hélas, je ne peux lire les versions Excel 2007 est supérieure étant sous 2003. Donc, si tu souhaites que je continue à regarder ta demande,poste une version sauvegardée compatible Excel 2003, stp.
 
Re : Probleme Macro

Re, effectivement, une légère modif à apporter pour qu'il te place bien les valeurs ds l'ordre souhaité :
VB:
Sub Test()
Dim Plage, d As Range

Plage = Array("E3", "E5", "E7", "E9", "I9", "E11", "E13", "I13", "E15", "E17", "E19")
Set d = Sheets("BDD").Range("A65536").End(xlUp).Offset(1, 0)
For t = 0 To UBound(Plage)
    d.Offset(0, t) = Range(Plage(t))
Next
End Sub
 
- 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

Discussions similaires

Réponses
10
Affichages
654
Réponses
4
Affichages
579
Retour