Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Copier colonnes, apporter quelques modifications et les coller dans un autre classeur

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

lele79

XLDnaute Nouveau
Bonjour ou bonsoir a tous,

je suis nouveau dans le forum et je me permets de solliciter votre aide, merci d'avance.

Je ne suis pas famillier avec les langages de programmation, encore moins avec VB mais la je suis dans l'obligation de comprendre VB et de l'utiliser dans le cadre de mon travail.
Tous ce que je sais faire de VB c'est de faire des macros avec l'enregistreur macros.

Dans mon projet, je dois copier des elements contenus dans une colonne, apporter quelques changements et le coller dans une feuille d'un autre classeur.
voici-ci joints un exemple de ce que je veux faire:
- Je copier tous ce qui est dans la colonne A de la feuille 1, classeur 1, et je rajoute un "_x" (x represente en faite un mot qui sera la meme pour tous) et ensuite je les colles dans la feuille 1 du classeur 2. Et lors que je colle sur ce dernier il faut que les lignes se suivent l'un derriere l'autre.

voila, je ne sais si tous est clair mais n'hesiter a me solliciter pour plus d'info.

merci.

Lele79
 

Pièces jointes

Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

Bonjour et bienvenue sur XLD


Tous ce que je sais faire de VB c'est de faire des macros avec l'enregistreur macros.
Cela c'est le point de départ vers l'Aventure avec un grand V.

Donc ca commence bien.

Question: entre chaque NOM , il y aura toujours 2 lignes ou cela sera variable ?
 
Dernière édition:
Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

bonjour .

Non, cela varie. il y aura des cas ou les lignes seront remplies l'une apres l'autres, d'autres comme ce qui sont presentees sur l'exemple.

Cordialement,

lele79
 
Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

Dans le cas où il y aurait beaucoup de données dans la colonne A ou beaucoup de cellules vides, le plus efficace serait de s'inspirer de ceci, je pense :
Code:
Sub copieColonneAVersClasseur2()
Dim cel As Range, d As Range
Set d = Workbooks(2).Sheets(1).[A1]
'Pour chaque cellule de la zone utile où y a pas de cellule vide :
  For Each cel In Workbooks(1).Sheets(1).Range([A1], [A65535].End(xlUp)).SpecialCells(xlCellTypeConstants, 23) '23 : englobe tous les types de données.
            d = cel & "_x"
            Set d = d.Offset(1, 0)
  Next
End Sub
 
Dernière édition:
Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

Bonjour Softmama,

Merci pour votre reponse. Le premier code que vous m'aviez envoyer marche mais la deuxieme un peu moins car je n'arrive pas a l'adapter au cas reel.

En fait, en realite sur le workbook 1, "Nom" est dans la colonne E (les colonnes avant sont cachees), ensuite "Unite" et "Propriete" sont respectivement dans la colonne J et N, ceux qui sont aux milieux sont cachees.

Pour les autres copiers et modif j'adapte votre code, je pense qu'avec ca je pourrais m'en sortir mais qu'en est-il de la concatainasion pour avoir A&":"&i.

Merci d'avance pour votre aide.

Lele79
 
Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

Bonjour,

Je crains de ne pas avoir compris quel problème tu rencontres ?

Si tu dois mettre dans le classeur 2, la concaténation des colonnes E, J et N du classeur 1 alors, essaie ceci :
Code:
Sub copieColonneAVersClasseur2()
Dim cel As Range, d As Range
Set d = Workbooks(2).Sheets(1).[A1]
'Pour chaque cellule de la zone utile où y a pas de cellule vide :
  For Each cel In Workbooks(1).Sheets(1).Range([E1], [E65535].End(xlUp)).SpecialCells(xlCellTypeConstants, 23) 
            d = cel & cel.offset(0,5) & cel.offset(0,9)
            Set d = d.Offset(1, 0)
  Next
End Sub

Si cela ne répond pas à ta question, essaie de la préciser.
 
Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

Bonjour Softmama et a tous,

tu es en plein dedans, ca ca que j'esperais, je vais l'adapter a mon projet et je reviens pour vous informer.

Merci bcp a tois ainsi qu'a ce forum!.

Lele79.
 
Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

bonjour Softmama et tous,

j'ai adapte le code que Sofmama m'a donne sur ma feuile et cela marche nickel maintenant je remarque que lorsque toutes les lignes des colones ne sont pas remplis il y a un decalage des donnees. Ce qu fausse mes donnees sur l'autres feuille.
Je pense qu'avec l'illustration sur le fichier joints cela sera plus clair.

Cordialement,

Lele79
 

Pièces jointes

Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

Bonjour a tous,
le code que Softmama m'avait donne, cela donne ceci sur les ficihier joints.

Merci pour votre aide!

Lele79
 

Pièces jointes

Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

bonjour a tous,

je suis arriver a faire ce que je voulais concernant les requetes sur les posts precedents. Maintenant je voudrai que lorsque mon userform apparait, je fais un choix parmis les liste deroulante et ce qui se trouvera dans le combobox1 se retrouvera sur toutes la colonne H ( sachant qu'il faut le mettre seulement si G et A (lignes) ne sont pas vides).

p.s: pourquoi dans sur mon userform lorsque je click sur la fleche de la liste deroulante je ne vois pas les elements listes?

Vous pourrez voir le code sur les deux feuilles ci-jointes.

En vous remerciant par avance.
 

Pièces jointes

Re : Copier colonnes, apporter quelques modifications et les coller dans un autre cla

bonjour a tous,

sur les feuilles 2 des deux classeurs, j'ai exactement les memes entetes et ainsi que la manipe mais a quelques chose pres.

En prenant exemple des deux feuilles precedemment jointes,
En fait au lieu d'avoir seulement Tag= A:I;
Je voudrai avoir le resultat suivant:
- Tag=A:g (ligne A2)
- Tag= A:h (ligne A3)
- Tag= A:i (ligne A4)

j'ai essaye ce code mais j'ai une erreur: "Run-Time error:13,Type Mismatch" apres la ligne "for each....."

Quelqu'un pourrais jeter un coup d'oeil sur le code ou me dire si je suis dans la mauvaise voie.

Cordialement.

lele 79

Sub transfer()

Dim a As Range, c As Range

Set d = Workbooks("Book1").Sheets(1).Range([E2], [E65535].End(xlUp)).SpecialCells(xlCellTypeConstants, 23)
Set c = Workbooks("Book2").Sheets(1).[A2]


For Each a In d
c = d.Offset(0, -4) & "_" & d
'Set c = c.Offset(0, 0)
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

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…