Erreur d’exécution pour un copier coller

Matta

XLDnaute Nouveau
Bonjour à tous,

J'ai un petit soucis dans une partie de mon programme, à un moment je veux allé copié une cellule dans une feuille et la copier dans une cellule fusionner dans une autre feuille.

Ce qui me gène c'est que les cellules fusionner dans la 2 ème feuille le sont grâce à des variables qui peuvent bougé. J'arrive à sélectionner les cellules fusionner mais je n'arrive pas a reproduire le texte qu'il y a dans la première feuille.

J'ai utilisé 2 méthodes :

La première c'est de dire que la cellules fusionner est égale à la cellules de la feuille 1 mais ça met "=Feuil1!R[4],C[26]"
Je pense que c'est dû au faite qu'il y a trop de cellule fusionnées.

La deuxième c'est de copier la cellule de la feuille 1 et de la coller sur la cellule fusionner mais le code ne marche pas
Voici le code que j'ai utilisé:

VB:
    Cells(CellV, CellH).Resize(15, DEC).Select
    With Selection
    .MergeCells = True
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    End With
Sheets("Feuil1").Select
    Cells(4,26).Select
    With Selection
    .Copy
    End With
Sheets("Feuil2").Select
    With Selection
    Cells(CellV, CellH).Resize(15, DEC).Select
    ActiveSheet.Paste
Application.CutCopyMode = False
End With

EDIT: J'ai oublié de préciser que l'erreur s'affiche lorsque je vers sélectionner la cellule dans la feuille 1 (Cells(4,26).Select). Désolé.

J'ai une erreur d’exécution 1004. J'ai essayer avec Range aussi c'est la même chose.

Par contre quand je le fais sur un nouveau ficher excel tout va bien et pareil avec les macro automatique.

Merci pour votre aide.
 
Dernière édition:

vgendron

XLDnaute Barbatruc
Hello
ton fichier en exemple serait utile ainsi que la macro complète
en attendant: il te manque un . dans ton code..

VB:
Cells(CellV, CellH).Resize(15, DEC).Select
With Selection
    .MergeCells = True
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With
With Sheets("Feuil1")
    .Cells(4, 26).Copy
End With

With Sheets("Feuil2")
    .Activate
    .Cells(CellVerti, CellHori).Resize(15, DEC).Paste
    Application.CutCopyMode = False
End With
 

Matta

XLDnaute Nouveau
Salut vgendron,

Déjà merci pour ta réponse, on m'a déjà prévenue pour le fichier comme c'est quelque chose que je ne dois pas diffusé je suis en train de récréer quelque chose de similaire le problème c'est que je code marche exactement comme prévue dans ce fichier test du coup je ne sais pas trop quoi faire en vérité...

je joins quand même le fichier test
 

Pièces jointes

  • Classeur1 (1).xlsm
    18 KB · Affichages: 4
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Bonjour le fil, bonjour le forum,

La règle d'or en VBA c'est d'éviter autant que possible les Select inutiles qui ne font que ralentir l'exécution du code et sont source de plantage. VBA et cellules fusionnées ne font pas bon ménage. Alors je te propose de faire le copier/coller (sans select) et de fusionner à la fin :

VB:
Sub Macro1()
Sheets("Feuil1").Cells(4, 26).Copy Sheets("Feuil2").Cells(CellVerti, CellHori).Resize(15, DEC)
With Sheets("Feuil2").Cells(CellV, CellH).Resize(15, DEC)
    .MergeCells = True
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
End With
End Sub
 

Matta

XLDnaute Nouveau
Salut Robert,

Merci pour ta réponse, sur le fichier test ton code marche tel quel mais sur le vrai gros fichier il me dit que la sélection n'est pas bonne. Du coup j'ai rajouté quelque .Select et ça marche ( je sais c'est moche).

Il y a un autre petit soucis c'est le message qui arrive lorsque le programme fusionne. C'est possible soit ne pas le faire apparaître ou de le faire disparaître a chaque fois automatiquement? Car je dois répété l'opération plusieurs fois.

Voici le code du fichier final

VB:
Sheets("Feuil1").Cells(4, 26).Copy
Sheets("Feuil2").Cells(CellV, CellH).Resize(15, DEC).Select
With Selection
    ActiveSheet.Paste
    .MergeCells = True
    .HorizontalAlignment = xlCenter
    .VerticalAlignment = xlCenter
    With Selection.Font
    .Size = 6
    End With
End With

Si c'est pas possible c'est pas grave tu m'as déjà pas mal aidé.

Bonne journée
 
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re,

Arf ! Non pitié. Il vaut mieux trouver le pourquoi ça buggue plutôt que ces Select...

Sinon pour les messages Excel, par exemple à la suppression d'un onglet, tu peux les désactiver avec Application.DisplayAlerts = False une ligne avant la ligne de code de suppression. Il te faudra impérativement remettre après dans le code à Application.DisplayAlerts = True pour t'éviter des déboire...
 

Discussions similaires

Statistiques des forums

Discussions
311 711
Messages
2 081 799
Membres
101 818
dernier inscrit
tiftouf5757