Fusionner une plage entre deux variables

Bonjour,

J'essaye de fusionner l'espace situé entre deux variables, mais en vain ..

Voilà ma démarche :

Dim mergeA As Range, mergeB As Range

Sheets("References crees").Select

Set mergeA = Sheets("References crees").[E4]


Set mergeB = Sheets("References crees").[E10]

Range(mergeA, mergeB).Merge




J'obtiens l'erreur suivante :
Run-time error '1004' :

Application-defined or object-defined error.

Merci d'avance pour votre aide !

Bonne journée !

2 réponses

Résumé de la discussion

Fusionner l'espace entre deux cellules via VBA et l'exécution de la macro échoue, affichant l'erreur Run-time error 1004 lors de la tentative de fusion des cellules E4 et E10. La solution principale consiste à fusionner la plage E4 à E10 en utilisant MergeCells = True, par exemple Sheets("References crees").Range("E4", "E10").MergeCells = True, ce qui évite les erreurs d'exécution. En cas d'erreur persistante, d'autres méthodes existent, comme Range(mergeA, mergeB).MergeCells = True ou Range("E4", "E10").MergeCells = True, tout en vérifiant que la feuille n'est pas protégée ou bloquée par une macro. Des échanges indiquent que la protection peut ralentir l'exécution; tester sur une feuille déverrouillée peut aider.

Bobot (l’IA à votre service)
  1. Contributeur
    bonjour,
    A quelle ligne as-tu cette erreur?
    Peux-tu fusionner sans problème à la main?
    1
    1. Merci pour la réponse !

      J'ai l'erreur au niveau du .Merge

      Oui aucun souci pour fusionner à la main ou pour fusionner en remplaçant les variables par une intervalle simple "E4:E10" ...
      0
    2. Contributeur
      @farreneitpeux-tu partager to fichier?
      0
    3. @yg_beBonjour,

      Impossible de partager le fichier malheureusement (données sensibles) ..

      J'ai donc recréé le fichier et cela fonctionnait ^^

      A priori l'erreur venait simplement d'un blocage de la feuille (j'ai un .unprotect au début et un .protect en fin de macro).

      Par contre chose bizarre, lorsque la feuille est bloquée et que je lance la macro, cela fonctionne mais très lentement.
      Tandis que lorsque je débloque manuellement la feuille et que je lance la macro, celle ci fonctionne très rapidement ...

      Y-a-t'il une explication et un remède ?

      Merci !
      0
    4. Contributeur
      @farreneitAucun soucis en exécutant la macro sans protéger, c'est quasi instantané.
      Je vois aussi que le fichier a un lien vers un autre fichier.
      0
  2. Contributeur
    Bonjour,

    comme ceci:

    Sheets("References crees").Range("E4", "E10").MergeCells = True


    1
    1. Merci pour la réponse, mais le but est de pouvoir fusionner en fonction des variables.
      0
    2. Contributeur
      @farreneitet cela:

      Range(mergeA, mergeB).MergeCells = True


      @+
      0
    3. @cs_Le PivertComme ça cela fonctionne, merci.

      Malheureusement cela bloque à un autre niveau.

      Mes variables dépendent en fait d'autres variables :

      Dim mergeA As Range, mergeB As Range
      
      Dim Cible As Range
      
      Sheets("References crees").Select
      
      Set Cible = Sheets("References crees").[E4]
      
      Set mergeA = Cible.Offset(, 1)
      
      Set mergeB = Cible.Offset(5)
      
      Range(mergeA, mergeB).Merge
      
      
      


      J'obtiens le code d'erreur :
      Unable to set the MergeCells property of the Range Class ...

      Merci encore
      0