Création de boucle

Pouims Messages postés 3 Date d'inscription   Statut Membre Dernière intervention   -  
Iama Messages postés 324 Statut Membre -
Bonjour,

Je suis toute nouvelle dans ce monde magique de la programmation. Après avoir lu "VBA pour les nuls" je souhaite me lacer dans un petit programme... Mais bien plus difficile que prévu!!
Voici mon problème (je vais essayer d'être claire mais c'est pas mon fort!):
J'ai un tableau à quatre colonnes. Je souhaite fusionner les cellules:

*de A si elles sont identiques
*de B si elles sont identiques et que celles de A aussi (donc fusionnées)
*de C si elles sont identiques et que celles de A et B aussi (donc fusionnées)
*de D si elles sont identiques et que celles de A , B et C aussi (donc fusionnées)

Pour le moment j'arrive à comparer deux cellules définies et à les fusionner mais je n'arrive pas à le faire en boucle jusqu'à la fin de mon tableau...

Pouvez vous me donner quelques pistes?

Merci

3 réponses

  1. Iama Messages postés 324 Statut Membre 14
     
    Bonjour Pouims

    Peux-tu nous poster ton code, c'est plus simple de voir ou tu bloque?

    PS: Quand tu dis " fusionner les cellules" et si tu parle du format des cellules: C'est pour m'a part un formatage que j'évite, car je trouve qu'il génère trop de problèmes. je lui préfère " centrer sur plusieurs colonnes

    cordialement
    0
  2. Pouims Messages postés 3 Date d'inscription   Statut Membre Dernière intervention  
     
    Bonjour Iama,
    Voici mon "petit" code... il ne compare que deux cellules d'une seule colonne et les fusionne si besoin.


    Sub comparaison()
    Range("D2").Select
    Var = Worksheets("DU par Unité").Range("D2").Value
    Var1 = ActiveCell.Offset(1, 0).Value
    If Var = Var1 Then Range("D2", ActiveCell.Offset(1, 0)).merge Else: MsgBox "Pas Egal"
    End Sub

    Quand je parle de fusionner c'est pour rendre la lecture du document plus facile, la fusion se fait par colonne et non par ligne donc "centrer sur plusieurs colonnes ne fonctionne pas" et je ne sais pas faire autrement que fusionner sur les colonnes.

    merci
    0
  3. Iama Messages postés 324 Statut Membre 14
     
    Bonjour Pouims

    Voici un code, il ne traite qu'une colonne.
    tu pourras voir un exemple de boucle.

    En faire une autre boucle pour traiter plusieurs colonne.
    Mais les fusions ne se font que sur les lignes.

    Sub comparaisonb()
    Dim i As Long, y As Long
    Dim coL As Integer 'N° de colonne
    Dim derL As Long  'derniére ligne
    Dim vaR As Variant
    
    coL = 4
    Worksheets("DU par Unité").Activate
    derL = Rows.Count
    derL = Cells(derL, coL).End(xlUp).Row 'derniére ligne utilisée
    
    For i = 1 To derL
    vaR = Cells(i, coL).Value
      If vaR = Empty = False Then
          If vaR = Cells(i, coL).Offset(1, 0).Value Then
          
              For y = i To derL
              Cells(y, coL).Select ' test W
                If vaR <> Cells(y, coL).Value Then Exit For
              Next y
          
            'Range(Cells(i + 1, coL), Cells(i + 1, coL).Offset(y - i - 2, 0)).Select
            Range(Cells(i + 1, coL), Cells(i + 1, coL).Offset(y - i - 2, 0)) = Empty
            
            With Range(Cells(i, coL), Cells(i + 1, coL).Offset(y - i - 2, 0))
             .Merge
             .VerticalAlignment = xlCenter
            End With
          i = y - 1
          End If
      End If
    Next i
    
    End Sub

    cordialement
    Si tu as des questions..
    0
    1. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Bonjour,

      Lorsque vous placez du code sur notre forum, merci d'utiliser les balises code à votre disposition.
      Le mode d'emploi (au cas ou) est ICI.

      Cordialement,
      Pijaku
      0
    2. Iama Messages postés 324 Statut Membre 14
       
      Bonjour et merci pijaku

      Je me demandais, comme faire pour rendre plus clair les codes.
      J'ai fait la modif
      Alain
      0
    3. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Oui, merci.
      A savoir également : l'utilisation de la balise <code + langage> comporte actuellement un bug. Les utilisateurs de IE8 ne voient que la première ligne du code. Si tu rencontres ce cas, n'hésite pas à ajouter un commentaire avec ton code entre balises <code> simples.
      Bonne journée et bonne continuation
      0
    4. Iama Messages postés 324 Statut Membre 14
       
      Excuse pijaku

      Mais IE8 = ?
      0
    5. pijaku Messages postés 13513 Date d'inscription   Statut Modérateur Dernière intervention   2 773
       
      Pardon... Internet Explorer 8
      0