concaténation VBA

Murdoc

XLDnaute Nouveau
Bonjour à tous,

Essayant toujours de me familiariser avec l'outil VBA j'ai souhaité réaliser une macro de concaténation, qui ne fonctionne pas du tout, voir code ci-dessous:

Sub Concatener()


Dim Cell As Range, Sh2 As Worksheet, Identite As Range

Set Sh2 = Sheets("Feuil2")

For Each Cell In Sh2.Range("D1:D" & Sh2.Range("D65536").End(xIup).Row)

Set Identite = Cells("A1") & ("B1") & ("C1")

Next

End Sub



Pour une personne qui si connait sa doit sûrment paraître farfellu , mais en ce qui me concernen je ne comprends mon erreur. En plus j'ai le droit a une erreure 1004, et sa ne me parle pas du tout.

Quelqu'un peut-il m'aider?? à rendre ma macro utilisable mais aussi à comprendre l'erreur.

Merci d'avance pour votre aide.
 

tototiti2008

XLDnaute Barbatruc
Re : concaténation VBA

Bonjour Murdock,

D'abord, Cell est un nom réservé, je crois, donc j'appelerais ma varaible Cellule ou un truc comme ça. En tout cas comme la collection Cells existe j'évite Cell comme nom de variable.

ensuite où se trouve ta plage Identité ? où veux-tu écrire A1&B1&C1 ?
si c'est en D1 (puis D2, D3...) alors c'est dans Cellule (Cell) qu'il faut écrire

donc je remplacerais :

Code:
Set Identite = Cells("A1") & ("B1") & ("C1")

par

Code:
Cellule.value = Sh2.cells(Cellule.row,1).value & Sh2.cells(Cellule.row,2).value & Sh2.cells(Cellule.row,3).value
 

Murdoc

XLDnaute Nouveau
Re : concaténation VBA

Bonjour Tototiti et merci pour ta réponse,

Donc si j'ai bien compris voilà ce que sa donne avec les bonnes modifs.

Sub Concatener()


Dim Cellule As Range, Sh2 As Worksheet

Set Sh2 = Sheets("Feuil2")

For Each Cellule In Sh2.Range("D1:D" & Sh2.Range("D65536").End(xIup).Row)

Cellule.Value = Sh2.Cells(A1, 1).Value & Sh2.Cells(B1, 1).Value & Sh2.Cells(C1, 1).Value

Next

End Sub

Cependant une erreur 1004 apparaît toujours pour la ligne:
For Each Cellule In Sh2.Range("D1:D" & Sh2.Range("D65536").End(xIup).Row)


Que signifie cette erreur??

Merci d'avance
 

tototiti2008

XLDnaute Barbatruc
Re : concaténation VBA

Re,

alors voilà :

comme ta colonne D est vide
Sh2.Range("D65536").End(xlup).Row
vaut 1
donc il vaudrait mieux mettre
Sh2.Range("A65536").End(xlup).Row
par exemple

ensuite tu as fait une faute de frappe, tu as tapé XIUP à la place de XLUP, c'est pour ça que ça plantait


enfin tu devrais mettre

Cellule.value = Sh2.cells(Cellule.row,1).value & Sh2.cells(Cellule.row,2).value & Sh2.cells(Cellule.row,3).value

comme je te l'avais proposé plus haut.

Cells attend un numéro de ligne et un numéro de colonne, tu ne peux pas mettre A1, B1, C1 dedans.
Si tu préfères travailler en A, B, C, tu peux également faire

Cellule.value = Sh2.range("A" & Cellule.row).value & Sh2.range("B" & Cellule.row).value & Sh2.range("C" & Cellule.row).value
 

Murdoc

XLDnaute Nouveau
Re : concaténation VBA

ok sa fonctionne presque merci:

Je l'ai fait comme sa:

For Each Cellule In Sh2.Range("D1:D" & Sh2.Range("D65536").End(xlUp).Row)

Cellule.Value = Sh2.Range("A" & 1).Value & Sh2.Range("B" & 1).Value & Sh2.Range("C" & 1).Value

Mais celà n'opère que sur la première ligne alors que toutes les lignes avec de l'écriture devraient être concernées. ???
 

tototiti2008

XLDnaute Barbatruc
Re : concaténation VBA

Re,

voir plus haut :

comme ta colonne D est vide
Sh2.Range("D65536").End(xlup).Row
vaut 1
donc il vaudrait mieux mettre
Sh2.Range("A65536").End(xlup).Row
par exemple

remplace

Code:
For Each Cellule In Sh2.Range("D1:D" & Sh2.Range("D65536").End(xlUp).Row)

par

Code:
For Each Cellule In Sh2.Range("D1:D" & Sh2.Range("[COLOR=red]A[/COLOR]65536").End(xlUp).Row)
 

tototiti2008

XLDnaute Barbatruc
Re : concaténation VBA

Re,

en effet, il faut aussi remplacer :

Code:
Cellule.Value = Sh2.Range("A" & 1).Value & Sh2.Range("B" & 1).Value & Sh2.Range("C" & 1).Value

par

Code:
Cellule.value = Sh2.range("A" & Cellule.row).value & Sh2.range("B" & Cellule.row).value & Sh2.range("C" & Cellule.row).value
 

Discussions similaires

  • Résolu(e)
Microsoft 365 FORMULE Excel VBA
Réponses
17
Affichages
776

Statistiques des forums

Discussions
312 202
Messages
2 086 175
Membres
103 152
dernier inscrit
Karibu