Pb recopie largeur colonnes

  • Initiateur de la discussion Initiateur de la discussion Blafi
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Blafi

XLDnaute Occasionnel
Bonjour à tous les forumeurs..,

J'ai enregistré une macro (voir ci-dessous) qui copie des colonnes de la feuille active et qui colle dans une autre feuille (résultat) et sur les mêmes colonnes la largeur de colonne. Or, cette macro plante à chaque fois en me donnant le message suivant :

"Erreur éxécution 1004

la méthode PasteSpécial de la classe Range a échoué"

Je ne m'explique pas pourquoi ça ne marche pas, car
1/ j'ai enregistré avec l'enregistreur de macro (donc, a priori pas d'erreur de syntaxe) et
2/ j'utilise la même macro dans un autre classeur et ça marche !

ma macro :

Sub LargCol()
'

Columns("A:G").Select
Selection.Copy
Sheets("Résultat").Select
Columns("A:G").Select
Selection.PasteSpecial Paste:=xlColumnWidths, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
End Sub

Quelqu'un peut-il me dire pourquoi j'obtient cette erreur ?
Je précise que j'ai enregistré cette macro avec excel 2000 et elle plante avec aussi bien qu'avec excel 2003.....

Merci d'avance...
 
Re : Pb recopie largeur colonnes

Salut,

Essaye avec le code suivant et ca devrait le faire :
Code:
Sub LargCol()
Sheets("feuil1").Columns("A:G").Copy
Application.Goto Sheets("Résultat").Range("A1")
Selection.PasteSpecial Paste:=xlPasteColumnWidths
End Sub

@+
 
Re : Pb recopie largeur colonnes

Bonjour Blafi, Romain

A priori sur Excel 2000 ca ne passe pas, je viens de faire l'essai, la constante "xlPasteColumnWidths" n'est d'ailleurs pas proposée en info express...

Romain je suppose que tu as testé mais sur une version ultérieure peut être ?

Ou alors là il y a quelque chose qui m'échappe, mais tout est possible.

Bon après midi à tous.
@+
 
Re : Pb recopie largeur colonnes

re, Salut Pierrot,

En effet, j'ai fais le test sous Excel 2002 et n'ayant pas Excel 2000 sous la main, je ne peux pas faire le test.
Mais peut etre qu'en mettant mon code avec xlColumnWidths ca peut fonctionner non ?

Je vous laisse le soin de faire le test.

@+
 
Re : Pb recopie largeur colonnes

Re Romain

Merci de ta réponse, j'ai essayé pas mal de trucs mais rien à faire, ce qui me dit que ce n'est pas possible, c'est que je ne vois pas la constante "xlPasteColumnWidths" ou "xlColumnWidths" de proposée, donc .... alors que sous 2002, 2003 pas de problème.

Bone soirée
@+
 
Re : Pb recopie largeur colonnes

re,

Peut etre que ca vient des options existantes dans le collage spécial, je n'ai fait que partir du code générer automatiquement par Blafi. Et il dit dans son premier post qu'il a enregistré le code suivant Selection.PasteSpecial Paste:=xlColumnWidths, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False avec Excel 2000, donc, soit il a révé et l'as fait avec Excel au moins 2002, soit y a quelques chose qui nous échappe.

Je ne sais pas trop quoi te dire de plus,

@+
 
Re : Pb recopie largeur colonnes

Re Romain,

non je crois pas, le problème c'est qu avec l enregistreur, sous 2000 tu obtiens bien le code de Blafi, et ce même code executé pas à pas plante....

J'ai même enlevé tous les arguments facultatifs, même résultat, peut être un bogue version 2000....

Mais le collage spécial de la largeur de colonne, n'existait pas sous Excel 97, ce qui expliquerait peut être l'absence de la constantes sous 2000...

Bizarre tout ca.

bonne soirée
@+
 
Re : Pb recopie largeur colonnes

re,

Bon, comme cette histoire d'option commencais a me fatiguer, je me suis dit faisons autrement, donc voici un code qui fonctionne quelque soit le nombre de colonne sélectionné :
Code:
Sub LargCol()
Dim i%
Sheets("feuil1").Select
Columns("A:G").Select
Selection.Copy
Application.Goto Sheets("Résultat").Range("A1")
ActiveSheet.Paste
With Sheets("Feuil1")
    For i = 1 To Selection.Columns.Count
        .Columns(i).ColumnWidth = Columns(i).ColumnWidth
    Next i
End With
End Sub

Bonne soirée,

@+
 
Re : Pb recopie largeur colonnes

Bonjour à tous,

Je prends connaissance seulement aujourd'hui des réponses de porcinet82 et de pierrot93 et je les en remercie...
J'ai bien enregistré ma macro au départ avec Excel 2000 et comme vous l'avez constaté elle ne marche pas... C'est je pense effectivement un bogue quelque part....
Je vais adopter le code proposé en dernier...
Merci à tous les 2 et à bientôt.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

L
Réponses
9
Affichages
1 K
B
  • Question Question
Réponses
4
Affichages
994
bd.afaf
B
O
Réponses
5
Affichages
897
B
  • Question Question
Microsoft 365 colorer une plage
Réponses
2
Affichages
970
bd.afaf
B
O
Réponses
4
Affichages
2 K
Réponses
20
Affichages
3 K
M
Réponses
6
Affichages
2 K
M
Retour