Fusionner une plage entre deux variables

farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   -  
farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   -
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 !
A voir également:

2 réponses

yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   Ambassadeur 1 584
 
bonjour,
A quelle ligne as-tu cette erreur?
Peux-tu fusionner sans problème à la main?
1
farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   10
 
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
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention  
 
peux-tu partager to fichier?
0
farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   10 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Bonjour,

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
farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   10 > yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention  
 
Pour 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 ...
0
yg_be Messages postés 23541 Date d'inscription   Statut Contributeur Dernière intervention   1 584 > farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention  
 
Aucun 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
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729
 
Bonjour,

comme ceci:


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


1
farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   10
 
Merci pour la réponse, mais le but est de pouvoir fusionner en fonction des variables.
0
cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention   729 > farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention  
 
et cela:

Range(mergeA, mergeB).MergeCells = True


@+
0
farreneit Messages postés 282 Date d'inscription   Statut Membre Dernière intervention   10 > cs_Le Pivert Messages postés 7904 Date d'inscription   Statut Contributeur Dernière intervention  
 
Comme ç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