Excel(VBA) copier valeurs dans une cellule [Résolu/Fermé]

Signaler
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
-
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
-
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

Messages postés
299
Date d'inscription
dimanche 2 novembre 2008
Statut
Membre
Dernière intervention
20 novembre 2014
6
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)
Messages postés
9581
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
29 octobre 2020
1 929
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
Messages postés
1823
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
24 avril 2020
587
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,
Messages postés
64
Date d'inscription
mercredi 5 décembre 2007
Statut
Membre
Dernière intervention
8 février 2012
6
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