IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Fusionner des cellules avec une boucle For Each


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Avril 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Avril 2020
    Messages : 2
    Par défaut Fusionner des cellules avec une boucle For Each
    Bonjour à tous,


    Débutant depuis 3 semaines sur vba je bute depuis plusieurs jours déjà pour la fusion de cellules.
    J'ai testé, avant l'appel à la fonction merge, si ma macro était bonne avec une MsgBox. Cela semble fonctionné. Je crains donc que je n'ai pas réussi à trouver les subtilités de cette fonction.

    J'ai lu dans certains sujets que la fusion de cellules était le point faible du vba. J'aimerai avoir votre avis sur ce point.

    Je m'explique :

    J'ai un classeur contenant plusieurs feuilles. Je souhaiterai fusionner une colonne voulu d'une première feuille puis passer à la seconde, effectuer une autre fusion etc.

    Concrètement, ma ligne de code qui traite cette tâche est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Sub test_fusion_boucle()
     
    Dim nom_ouvrage As Worksheet
    Dim derniere_ligne As Long
     
    Application.DisplayAlerts = False
     
    For Each nom_ouvrage In Worksheets
     
    derniere_ligne = Cells(Rows.Count, 1).End(xlUp).Row
     
    'ma cellule de départ pour la fusion est toujours la même quequesoit la feuille concernée
     
    Range(Cells(5, 1), Cells(derniere_ligne, 1)).Merge
     
    Next nom_ouvrage
     
    End Sub

    Mon code fonctionne bien pour la première feuille mais il ne s'exécute pas pour les suivantes.

    Avez-vous des pistes à me conseillez pour résoudre ce problème ?

    Merci d'avance,

    Arnaud

  2. #2
    Membre Expert Avatar de mfoxy
    Homme Profil pro
    Automation VBA
    Inscrit en
    Février 2018
    Messages
    752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Belgique

    Informations professionnelles :
    Activité : Automation VBA
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Février 2018
    Messages : 752
    Par défaut
    Bonjour,

    Tu dois indiqué la parentalite de tes objets range et cells, dans le cas contraire le Range est toujours celui de la feuille active

    Essaie comme ceci.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
     
     
    Sub test_fusion_boucle()
     
    Dim nom_ouvrage As Worksheet
    Dim derniere_ligne As Long
     
    Application.DisplayAlerts = False
     
    For Each nom_ouvrage In Worksheets
    With nom_ouvrage
      derniere_ligne = . Cells(Rows.Count, 1).End(xlUp).Row
     
      'ma cellule de départ pour la fusion est toujours la même quequesoit la feuille concernée
     
      . Range(.Cells(5, 1), .Cells(derniere_ligne, 1)).Merge
     
    End With
    Next nom_ouvrage
     
    End Sub

  3. #3
    Candidat au Club
    Homme Profil pro
    Ingénieur environnement
    Inscrit en
    Avril 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur environnement

    Informations forums :
    Inscription : Avril 2020
    Messages : 2
    Par défaut
    Bonjour mfoxy,

    Je viens de tester ton code et ça fonctionne. Je ne pensais pas que le problème pouvait venir de Range.
    Merci pour le tuyau, je regarderai demain de plus près la définition de parentalité pour mieux déchiffrer ton code par la suite (je suis en overdose de vba aujourd'hui !)

    Un grand grand Merci

    Bonne fin de journée à toi,

    Arnaud

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Dupliquer des contrôles avec une boucle for ?
    Par MisterPython dans le forum Windows Forms
    Réponses: 3
    Dernier message: 12/01/2018, 18h23
  2. [XL-2013] Sélection non contiguë de cellules dans une boucle For each
    Par Wiiizz14 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 26/05/2017, 16h20
  3. [XL-2007] Copier coller plage de cellules dans une boucle For Each..Next
    Par JulieD33 dans le forum Excel
    Réponses: 3
    Dernier message: 02/03/2015, 11h19
  4. Réponses: 1
    Dernier message: 14/08/2011, 04h24
  5. trié des date avec une boucle for each
    Par alex santus dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 03/09/2009, 11h00

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo