Macro VBA transformer une colonne de nom en une liste
rabax7
Messages postés
3
Statut
Membre
-
Le Pingou Messages postés 12720 Date d'inscription Statut Contributeur Dernière intervention -
Le Pingou Messages postés 12720 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
J'aimerai transformer une colonne Excel contenant des infos type
USD
JPY
CAD
GBP
ZAR
SEK
...
en une simple ligne au sein d'une cellule.
le but serait d'avoir "USD; JPY; CAD; GBP ; ZAR ; SEK" dans la même cellule. Je souhaite vraiment respecter ce format et avec les ; c'est un peu la galère...
C'est un procédé que je fais manuellement avec des fonctions excels
ex : =A1&";"&B2...
L'automatiser serait vraiment super
Mais je n'arrive pas à le programmer sur VBA et ce que quelqu'un aurait par hasard un code sympathique à proposer pour réaliser ce process?
Merci d'avance pour votre précieuse aide
Michel
J'aimerai transformer une colonne Excel contenant des infos type
USD
JPY
CAD
GBP
ZAR
SEK
...
en une simple ligne au sein d'une cellule.
le but serait d'avoir "USD; JPY; CAD; GBP ; ZAR ; SEK" dans la même cellule. Je souhaite vraiment respecter ce format et avec les ; c'est un peu la galère...
C'est un procédé que je fais manuellement avec des fonctions excels
ex : =A1&";"&B2...
L'automatiser serait vraiment super
Mais je n'arrive pas à le programmer sur VBA et ce que quelqu'un aurait par hasard un code sympathique à proposer pour réaliser ce process?
Merci d'avance pour votre précieuse aide
Michel
A voir également:
- Macro VBA transformer une colonne de nom en une liste
- Liste déroulante excel - Guide
- Déplacer une colonne excel - Guide
- Trier une colonne excel - Guide
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Transformer une image en icone - Guide
7 réponses
Bonjour,
le but serait d'avoir "USD; JPY; CAD; GBP ; ZAR ; SEK" dans la même cellule
une facon de faire, code dans VBA de la feuille: adaptez colonne et cellules
le but serait d'avoir "USD; JPY; CAD; GBP ; ZAR ; SEK" dans la même cellule
une facon de faire, code dans VBA de la feuille: adaptez colonne et cellules
Private Sub Worksheet_Change(ByVal Target As Range)
'derniere cellule non vide colonne A
derlig = Range("A" & Rows.Count).End(xlUp).Row
'test changement
If Not Application.Intersect(Target, Range("A1:A" & derlig)) Is Nothing Then
'raz cellule liste
Range("B2") = ""
'mise en forme: x a adapter suivant 1ere cellule
For x = 1 To derlig - 1
Range("B2") = Range("B2") & Range("A" & x) & ";"
Next x
Range("B2") = Range("B2") & Range("A" & derlig)
End If
End Sub
ca ne me permet pas d'avoir
dans une seule cellule
"USD; JPY; CAD; GBP ; ZAR ; SEK"
l'idée enfait et de pouvoir faire un copier coller de cette ligne pour un extraction comtpable et je dois inserer une seule ligne.
Si je fais le copier-coller spécial transposé, le problème est le même mais juste cette fois ci horizontalement.
dans une seule cellule
"USD; JPY; CAD; GBP ; ZAR ; SEK"
l'idée enfait et de pouvoir faire un copier coller de cette ligne pour un extraction comtpable et je dois inserer une seule ligne.
Si je fais le copier-coller spécial transposé, le problème est le même mais juste cette fois ci horizontalement.
J'arrive aps à faire fonctionner la macro, je dois la mettre dans la feuille, ok mais après comment je fait pour la lancer. quand ej fais play, il me demande de choisir une autre macro?
La réponse doit surement être évidente :/
La réponse doit surement être évidente :/
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re,
si vous modifiez ou ajoutez du texte dans une cellule de la colonne que vous avez choisie pour les noms, cela lance la macro Private Sub Worksheet_Change(ByVal Target As Range), c'est excel qui gere la chose. Au depart si votre colonne est deja renseignee, il faut modifier une cellule pour que cela demarre.
A+
si vous modifiez ou ajoutez du texte dans une cellule de la colonne que vous avez choisie pour les noms, cela lance la macro Private Sub Worksheet_Change(ByVal Target As Range), c'est excel qui gere la chose. Au depart si votre colonne est deja renseignee, il faut modifier une cellule pour que cela demarre.
A+
Bonjour
la fin sans boucle
la fin sans boucle
Dim Derlig As Integer, liste()
Derlig = Columns("A").Find("*", , , , , xlPrevious).Row
liste = Application.Transpose(Range("A1:A" & Derlig).Value)
Range("B2") = Join(liste, " ; ")
Bonjour à tous,
Une autre possibilité, la chaine concaténer se mettre à gauche de la première valeur à traiter.
La procédure :
Une autre possibilité, la chaine concaténer se mettre à gauche de la première valeur à traiter.
La procédure :
Sub creerchaine()
Set donnees = Application.InputBox("A l'aide de la souris, selectionnez la plage de valeurs (sans les entêtes de colonnes).", Type:=8)
donnees.Interior.ColorIndex = 6
For Each c In donnees
chaine = chaine & c & ";"
Next
chaine = Left(chaine, Len(chaine) - 1)
col = donnees.Column
li = donnees.Row
Range(Cells(li, col), Cells(li, col)).Offset(0, 1) = chaine
End Sub