Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

erreur 1004 fusion

GHISLAIN

XLDnaute Impliqué
Bonsoir les Exceliens,


j'ai besoin de fusionner et de fusionner des cellules quand elles sont actives et pas toujours au même endroit .
J’obtiens lors de la fusion une erreur 1004 , erreur défini par l'application ou l'objet.

j'ai testé :

Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(-1, 0)).Merge

ensuite en sélectionnant les cellules avant :

Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(-1, 0)).Select
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(-1, 0)).merge


ensuite en déclarant :
Dim i As Long, x As Integer, y As Integer
i = 1
x = -1
y = O

Range(ActiveCell.Offset(y, y), ActiveCell.Offset(x, y)).merge



mais rien a faire j'ai toujours l'erreur 1004



Nb suivant la cellule qui est active j'ai besoin de fusionner soit avec la cellule du bas ou la cellule haut


Merci a tous de votre aide

Bien amicalement


Ghislain
 

Roland_M

XLDnaute Barbatruc
Bonsoir

il faudrait déjà vérifier la cellule Active !?
msgbox ActiveCell.address

pour voir si on est pas en Ligne1 ou/et Colonne1
auquel cas ActiveCell.Offset(-1, 0)).Merge ! le (-1) cause forcément une erreur !?
 

GHISLAIN

XLDnaute Impliqué
Re,

je crois que j'ai trouvé

Dim i As Integer 'Merge first columns
i = -1
With ActiveSheet
.Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(i, 0)).MergeCells = True
End With
sauf erreur de ma part

si ca peut servir

Merci
 

Roland_M

XLDnaute Barbatruc
re

je ne vois pas ce qui change !?

que ce soit
.Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(-1, 0)).MergeCells = True

ou avec I=-1
.Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(i, 0)).MergeCells = True

c'est exactement pareil !
ça fait toujours ligne actuelle -1 et comme je te l'ai dis si la cellule active est sur la 1'ligne alors - 1 ça va planter !
 

Roland_M

XLDnaute Barbatruc
re

je viens de tester ceci
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(-1, 0)).Merge
en étant sur une cellule autre que sur la ligne 1 c'est ok !
si je suis sur la 1'ligne = plantage ! et c'est normale, puisque ça donne ligne 0 !
 

Roland_M

XLDnaute Barbatruc
re

avec ce que tu donnes comme info on ne peut guère tirer de conclusion !

EDIT:
pour éviter les erreurs il te faut tester la ligne sur laquelle est placée la cellule active, avec ActiveCell.Row
 
Dernière édition:

GHISLAIN

XLDnaute Impliqué
re ,
du coup je pallie au souci de la façon suivante

' cellule bas
If InRange(ActiveCell, Range("C88")) Or _
InRange(ActiveCell, Range("C1010")) Or _
InRange(ActiveCell, Range("C1212")) Or _
InRange(ActiveCell, Range("C1414")) Or _
InRange(ActiveCell, Range("C1616")) Then
Range(ActiveCell.Offset(0, 0), ActiveCell.Offset(1, 0)).Merge
end if

'cellule haut
If InRange(ActiveCell, Range("C77")) Or _
InRange(ActiveCell, Range("C99")) Or _
InRange(ActiveCell, Range("C1111")) Or _
InRange(ActiveCell, Range("C1313")) Or _
InRange(ActiveCell, Range("C1515")) Then
If ActiveCell = "" And ActiveCell(2, 1) = "" Then

Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(1, 0)).Merge
End If
ActiveCell.Select
End If
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…