[EXCEL -VBA] Erreur 400

lolonene

XLDnaute Nouveau
Bonjour à tous,

Je cherche à faire une macro qui va copier le contenu de 2 plages de cellule dans un autre feuille (jusque là je m'en sort) puis le trier par ordre alphabetique pour coller le résultat dans un tableau récapitulatif dont la structure est identique au deux premiers.
seulement j'obtiens une erreur 400 (dont je n'ai pas trouvé la signification)

je vous met mon code :
Code:
Sub SelectRecopie()
' Macro de synthese

'Efface tout le contenu de la feuille calcul
With Worksheets("calcul")
.Range("A1:IV65536").ClearContents
End With

' Copie le contenu des cellules a7 à a40 de la feuille 3-5 ans vers la feuille calcul en A1
With Worksheets("3-5 ans")
.Range("A7:Q40").Copy Worksheets("calcul").[A1]
End With

' Copie le contenu des cellules a7 à a40 de la feuille 6-12 ans vers la feuille calcul en A1
With Worksheets("6-12 ans")
.Range("A7:Q40").Copy Worksheets("calcul").[A41]
End With

' Tri le contenu de la feuille calcul par ordre croissant
With Worksheets("calcul")
Range("A1:Q100").Sort key1:=Range("A1:B100"), order1:=xlAscending
End With

' copie le resultat obtenu sur la feuille calcul dans le tableau de synthèse en feuille recap
With Worksheets("calcul")
.Range("A1:Q40").Copy Worksheets("recap").[A7]
End With

'Efface tout le contenu de la feuile calcul
With Worksheets("calcul")
.Range("A1:IV65536").ClearContents
End With
End Sub
Merco d'avance
 

porcinet82

XLDnaute Barbatruc
Re : [EXCEL -VBA] Erreur 400

Salut,

Je viens de tester ton code et chez moi ca roule !!!
Tu as bien les feuilles calcul,3-5 ans, 6-12 ans et recap dans ton classeur ? :p
Sinon, peut etre qu'un bout de ton classeur pour voir o use situe le soucis...

@+
 

job75

XLDnaute Barbatruc
Re : [EXCEL -VBA] Erreur 400

Bonjour lolonene et Porcinet,
Dans l'opération de tri, manque le point devant les Range (il est bien mis ailleurs). De plus, il faut sans doute écrire : key1:=.Range("A1")
A+
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : [EXCEL -VBA] Erreur 400

Bonjour à tous


lolonene: une question

Pourquoi des with/end with pour une seule ligne ?


Pourquoi pas

Code:
'Efface tout le contenu de la feuille calcul
Worksheets("calcul").Range("A1:IV65536").ClearContents
' Copie le contenu des cellules a7 à a40 de la feuille 3-5 ans vers la feuille calcul en A1
Worksheets("3-5 ans").Range("A7:Q40").Copy Worksheets("calcul").[A1]
' Copie le contenu des cellules a7 à a40 de la feuille 6-12 ans vers la feuille calcul en A1
Worksheets("6-12 ans").Range("A7:Q40").Copy Worksheets("calcul").[A41]
' Tri le contenu de la feuille calcul par ordre croissant
Worksheets("calcul").Range("A1:Q100").Sort key1:=Range("A1:B100"), order1:=xlAscending
' copie le resultat obtenu sur la feuille calcul dans le tableau de synthèse en feuille recap
Worksheets("calcul").Range("A1:Q40").Copy Worksheets("recap").[A7]
'Efface tout le contenu de la feuile calcul
Worksheets("calcul").Range("A1:IV65536").ClearContents
End Sub
 

porcinet82

XLDnaute Barbatruc
Re : [EXCEL -VBA] Erreur 400

Salut ou re,

Bien vue job75, moi j'ai fais le test avec des onglets vides, donc ca ne m'a pas généré d'erreurs...

D'accord avec toi Staple, juste une petite modif par rapport aux remarques de job75, peut etre plutot :
' Tri le contenu de la feuille calcul par ordre croissant
Worksheets("calcul").Range("A1:Q100").Sort key1:=Worksheets("calcul").Range("A1:B100"), order1:=xlAscending

@+
 

lolonene

XLDnaute Nouveau
Re : [EXCEL -VBA] Erreur 400

Merci à tous,
ça fonctionne en mettant le dernier code de porcinet82

@Staple1600
Je débute en vba (je n'y touche pas souvent en plus) et tout les autres code que j'ai fait ont été réalisé de cette manière, mais effectivement je doit pouvoir alléger.
Il me manquerais un bon tuto en ligne.
 

Statistiques des forums

Discussions
312 623
Messages
2 090 286
Membres
104 480
dernier inscrit
Gatsuken