Fusion de cellule en vba

Résolu
lara -  
 lara -
Bonjour,
J'aimerais fusionner une plage de cellule pour qu'il ne restre qu'une cellule pour cela j'utilise le code suivant qui ne fait pas totalement ce que je désire:

Application.DisplayAlerts = False
colonneDépart = 1
For i = numligne To numligne + 3
Feuil5.Cells(i, 1) = Feuil5.Cells(i, 2) & Feuil5.Cells(i, colonneDépart + 1)
Feuil5.Cells(i, colonneDépart).Resize(1, 2).Merge
Next

J'ai donc une plage de 4lignes et 2 colonnes aprés exuction du code j'ai donc 4lignes et une colonne ce que j'aimerais ce que j'aimerais c'est que tous ce fusionne pour qu'il ne reste qu'une seule cellule mais je ne sais pas comment m'y prendre.
Merci d'avance,
Bon aprés midi!

2 réponses

  1. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
     
    bonjour,
    parce qu'il faut que tu fusionnes aussi les lignes non ?
    essaie avec ca :

    Dim texte As String
    texte = ""
    Application.DisplayAlerts = False
    colonneDépart = 1
    For j = colonneDépart To 2
    For i = numligne To numligne + 3
    texte = texte & Feuil2.Cells(i, j)
    Next i
    Next j
    Feuil5.Range(Cells(numligne, colonneDépart), Cells(i - 1, j - 1)).Merge
    Feuil5.Cells(numligne, colonneDépart) = texte
    End Sub

    (récupère d'abord tous les textes des cellules dans 'texte' puis les fusionnent puis colle 'texte' dans la "nouvelle" cellule.. )
    0
    1. lara
       
      Ca me met une ereur : La méthode Range de l'objet Worksheet à échoué
      0
    2. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
       
      sorry, petite erreur de copier-coller pour texte = texte & feuil5.cells(i,j)

      code complet :
      Dim texte As String
      texte = ""
      Application.DisplayAlerts = False
      colonneDépart = 1
      For j = colonneDépart To 2
      For i = numligne To numligne + 3
      texte = texte & Feuil5.Cells(i, j)
      Next i
      Next j
      Feuil5.Range(Cells(numligne, colonneDépart), Cells(i - 1, j - 1)).Merge
      Feuil5.Cells(numligne, colonneDépart) = texte
      End Sub

      Ceci dit cela ne devrait pas renvoyer d'erreur de ce type pais plutôt 'objet requis' ou qqchose du genre, mais bon..
      0
    3. dobo69 Messages postés 1593 Date d'inscription   Statut Membre Dernière intervention   835
       
      petit fichier exemple avec le code en question :
      http://www.cijoint.fr/cj201006/cij2trDBsB.xls
      0
    4. lara
       
      C'est bizard j'ai exactement le mm code si ce n'est le numéro de fueil mais ca me fait la mm erreur
      0
    5. lara
       
      En fete j'ai testé exactement pareil ca marche si le bouton est sur la meme fueille mais si j'utilise le code a partir d'un click sur bouton valider dans un formulaire la ca me met l'erreur d'éxécution, aurait tu une idée ?
      0
  2. michel_m Messages postés 18903 Date d'inscription   Statut Contributeur Dernière intervention   3 320
     
    Bonjour

    petite démo à adapter à ton pb

    cellules A1: B4 avec des données
    retourne en A10 les textes concaténés 4 lignes, 1 colonne

    Sub fusionner()
     Dim tablo(1 To 4)
     Dim cptr As Byte
     For cptr = 1 To 4
     tablo(cptr) = Cells(cptr, 1) & " " & Cells(cptr, 2)
     Next
     Cells(10, 1) = Join(tablo, vbLf)
    End Sub


    http://www.cijoint.fr/cjlink.php?file=cj201006/cijTC0Pqz8.xls
    0