Fusion de cellule Excel

Omexcel -  
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour,
J'ai un soucis avec Excel, je cherche sur Internet depuis une semaine j'ai essayé pleins d'astuces mais je ne trouve pas la solution à mon problème, je précise que je ne maitrise pas énormément Excel.

J'ai un classeur, dans une colonne il y des références et dans les autres colonnes des critères de compatibilité.
Dans ma première colonne il y a des doublons, mais ils sont rattachés à des critères de compatibilité différents.

j'aimerais ne garder qu'une seule référence et rassembler tous les critères sur la même ligne.

Voici un exemple:
  A          B         C      D      E
3100    Voiture
3100               Avion
3100                       moto 
3100                               Vélo


Donc dans mon tableau Excel je ne voudrais qu'une seule ligne "3100" avec toutes les information séparé à la suite.

Comment faire?

En vous remercient d'avance pour vos réponse

Cordialement

Omexcel
Configuration: Windows XP
Internet Explorer 6.0

8 réponses

  1. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    Petites précisions nécessaires:
    1: les ref sont elles regroupées ou non?
    2: combien il y a t'il de lignes au total ?
    3/ combien il y a t il de colonnes de critères ?
    4/ prévoit on une mise à jour; cad nouvelle ligne, ref existant ou non avec nouveau critère ou non?

    Michel
    0
  2. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Bonjour,
    Avec une macro ?

    Sub FusionCellule()
    Dim DerLigne As Integer, i As Integer, RD As Range
    Dim e As Integer
    '------- Pas nécessaire si un seul classeur
        Workbooks("Classeur1").Activate
    '------------------------------------------
        Application.DisplayAlerts = False 
    '------------------------------------------
        Sheets("feuil1").Select
        DerLigne = Range("A65536").End(xlUp).Row
        For i = 1 To DerLigne
            If Range("A" & i).Value <> vbNullString Then
                Set RD = Range("A" & i)
                For e = i + 1 To DerLigne
                    If RD.Value <> Cells(e, 1).Value Then Exit For
                Next e
                If e - 1 > i Then  'Si une seule fois la valeur
                    Range("A" & i & ":A" & e - 1).Select
                    With Selection
                        .Merge
                        .HorizontalAlignment = xlCenter
                        .VerticalAlignment = xlCenter
                    End With
                    i = e - 1
                End If
            End If
        Next i
        Application.DisplayAlerts = True
    End Sub

    Seulement adapter le nom du classeur et de la feuille..

    A+
    Edit: rassembler tous les critères sur la même ligne
    J'ai pas bien lu.
    Ma macro ne répond pas à ta demande.
    0
  3. Omexcel
     
    Bonjour,

    Merci pour vos réponses.

    Oui les références en colonnes sont déja regroupées.
    Il y a 611 lignes au total avec les doublons.
    il y 11 colonnes de critères.
    Il a une possibilité de mise à jour mais pas pour tout de suite.

    Cordialement
    0
  4. lermite222 Messages postés 9042 Statut Contributeur 1 199
     
    Cette fois-ce, une macro qui répond à ta demande et qui peu être réutilisée pour réorganisation ultérieure.
    https://www.cjoint.com/?hDlgL8FObL
    A+
    EDIT: ne fonctionne pas sur le site de Cjoint
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Omexcel
     
    Je vous remercie pou cette macro c'est exactement ce que je cherchais, il ne me reste qu'à l'adapter pour mon fichier.

    Il va falloir que j'aprenne les macros aussi. lol

    En tous cas merci beaucoup, vous m'avez sauvé d'une crise nerf. lol

    Bonne journée

    Bien cordialement

    Omexcel
    0
  7. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour,

    une alternative

    https://www.cjoint.com/?hDmclCkmI6

    dont voici la macro;

    Sub aligner_criteres()
    Dim ligact As Long, fin As Long, nbre As Integer, ref As String
    Application.ScreenUpdating = False
    fin = Range("A65536").End(xlUp).Row + 1
    ligact = 2
    While ligact < fin
        ref = Cells(ligact, 1)
        nbre = Application.CountIf(Range("A:A"), ref)
        If nbre > 1 Then
            For cptr = ligact + 1 To ligact + nbre - 1
                colcrit = Cells(cptr, 13).End(xlToLeft).Column '13 correspond à la colonne M
                Cells(ligact, colcrit) = Cells(cptr, colcrit)
            Next
            Rows(ligact + 1 & ":" & ligact + nbre - 1).Delete
        End If
    ligact = ligact + 1
    fin = Range("A65536").End(xlUp).Row + 1
    Wend
    
    End Sub


    tu peux ajouter une nouvelle ref avec de critères et relancer
    pour lancer: macro-macro- aligner_critères -executer. je n'ai pas mis de boutons car tu as dit que "on verrait + tard"

    cordialement
    Michel
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Salut michel,
      Tu permet une petite critique ?
      Quand tu supprime les lignes au fur et à mesure tu va te trouver avec une quantité de lignes vides qui serront testées, bien sur, ca change rien mais Bon...
      D'où ma solution de les supprimés après.
      A+
      0
  8. Omexcel
     
    Merci à vous deux,

    Tout fonctionne parfaitement.

    Il ne me reste plus qu'à apprendre et comprendre "comment ça marche" c'est le cas de le dire. lol

    Bonne journée

    Cordialement
    0
  9. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour lermite,

    je ne pense pas (?...) car avant "wend" je recalcule la dernière ligne

    cordialement
    Michel
    0
    1. lermite222 Messages postés 9042 Statut Contributeur 1 199
       
      Oups:
      0