Excel(VBA) copier valeurs dans une cellule

Résolu/Fermé
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
- Modifié par plastickman le 8/02/2012 à 15:14
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
- 8 févr. 2012 à 18:57
Bonjour à tous,
J'ai dans la colonne A nommée "rubrique" et dans une colonne B des "option" s'y rapportant, ce qui donne :


       A                                B
1     RUBRIQUES               OPTIONS 

2      Machine 1                 option 1 

3                                       option 23    

4                                       option 12 

5      Machine 2                 option 2 

6                                       option 4 

7      Machine 3                  option 1 

8                                       option 112 

9                                       option 8 







Je souhaiterais réaliser un code qui me permettrait d'arriver à ceci:

 
       A                                B    
1     RUBRIQUES                OPTIONS 

2      Machine 1                 option 1 option 23 option 12 

3                                           

4                                        

5      Machine 2                 option 2 option 4 

6                                        

7     Machine 3                  option 1 option 112 option 8 

8                                        

9        







Quelqu'un a -t-il une petite idée à me soumettre?

Merci,



4 réponses

remousse
Messages postés
299
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
20 novembre 2014
6
8 févr. 2012 à 16:42
L'utilisation de la fonction de concaténation d'excel ne suffirait pas à résoudre le problème par hasard ?
Par exmeple: =CONCATENER(E13;F13)
0
ccm81
Messages postés
10356
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
26 juin 2022
2 299
8 févr. 2012 à 16:44
bonjour

quelque chose comme ça ?

Option Explicit

Const FO = "Feuil1"
Const FB = "Feuil2"

Public Sub GrouperOptions()
Dim derliFO As Long, liFO As Long
Dim liFB As Long
Dim rub As String, opt As String
derliFO = Sheets(FO).Cells(Rows.Count, 2).End(xlUp).Row
liFB = 2
liFO = 2
While liFO < derliFO
  rub = Sheets(FO).Cells(liFO, 1).Value
  opt = Sheets(FO).Cells(liFO, 2).Value
  Sheets(FB).Cells(liFB, 1).Value = rub
  Sheets(FB).Cells(liFB, 2).Value = opt
  liFO = liFO + 1
  While (liFO <= derliFO) And (Sheets(FO).Cells(liFO, 1).Value = "")
    opt = opt & "  " & Sheets(FO).Cells(liFO, 2).Value
    Sheets(FB).Cells(liFB, 2).Value = opt
    liFO = liFO + 1
  Wend
  liFB = liFB + 1
Wend
End Sub

bonne suite
0
pilas31
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
631
8 févr. 2012 à 16:47
Bonjour plastickman et ccm81

J'arrive un peu tard,
j'ai testé une macro qui fait le tri sur place (dans la même feuille) :

Sub RANGER()
DerLig = Columns(2).Find("*", , , , xlByColumns, xlPrevious).Row
LigMach = 2
Do
    LigOpt = LigMach + 1
    Do
        If LigOpt > DerLig Then Exit Sub
        Cells(LigMach, 2) = Cells(LigMach, 2) & "," & Cells(LigOpt, 2)
        Rows(LigOpt).Delete Shift:=xlUp
        DerLig = DerLig - 1
    Loop Until Cells(LigOpt, 1) <> ""
    LigMach = LigMach + 1
Loop
End Sub


A+

--
Cordialement,
0
plastickman
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
6
8 févr. 2012 à 18:57
Bonsoir et merci à vous trois,
Remousse, j'ai bien pensé à CONCATENER, mais j'ai environ 500 lignes à traiter.

CCM81, ça marche très bien, malgré que je n'ai presque rien compris à ta macro ;)

Pilas31, ça marche également, sauf dans le cas où une "rubrique " n'a qu'une seule "option" en face dans la colonne B, à ce moment là, la ligne disparait.

Merci encore,

jp
0