Fusionner une plage entre deux variables
Bonjour,
J'essaye de fusionner l'espace situé entre deux variables, mais en vain ..
Voilà ma démarche :
J'obtiens l'erreur suivante :
Run-time error '1004' :
Application-defined or object-defined error.
Merci d'avance pour votre aide !
Bonne journée !
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.
-
Contributeurbonjour,
A quelle ligne as-tu cette erreur?
Peux-tu fusionner sans problème à la main?-
-
Contributeur@farreneitpeux-tu partager to fichier?
-
@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 ! -
@yg_bePour illustrer le problème voilà le fichier.
https://wetransfer.com/downloads/bb65f8a27c9b6ee7c4559ed23298076120211124150633/6bd474
Je te laisse essayer une première fois en enlevant la protection de la feuille "references crees" manuellement.
Puis réessayer derrière.
Aussi, le total (TT) ne s'affiche pas ... -
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.
-
-
ContributeurBonjour,
comme ceci:Sheets("References crees").Range("E4", "E10").MergeCells = True
-
-
-
@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
-