Erreur macro simple, erreur 400

  • Initiateur de la discussion Initiateur de la discussion craps_le_vrai
  • 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 !

C

craps_le_vrai

Guest
Bonjour,

Je connais peu les macro mais quand j'en vois une qui me paraiit un bon outil, je l'utilise.

C'est un fichier de facturation, environ 30 factures/mois pour le meme client.
Une fois les factures finies, je veux récapituler les factures, libellés, montant, dans un onglet "synthese".

J'ai copie la macro suivante:

Sub GenererSynthese()
Dim sh As Worksheet, Ctr As Integer
For Each sh In Sheets
If sh.Name <> "Synthese" Then
Ctr = Ctr + 1
Sheets("Synthese").Range("A1" & Ctr) = sh.Name
Sheets("Synthese").Range("B1" & Ctr) = Sheets(sh.Name).Range("G9")
Sheets("Synthese").Range("C1" & Ctr) = Sheets(sh.Name).Range("A12")
Sheets("Synthese").Range("H1" & Ctr) = Sheets(sh.Name).Range("H50")
End If
Next
End Sub

Probleme: Ca fonctionne en test avec 4 ou 5 onglets, mais avec 26 onglets, le recap s'arrete à 9 . J'ai fait l'essai sur un autre PC, la macro bug et affiche erreur 400.

QQun peut il me dire ou est l'erreur?

Merci d'avance
 

Pièces jointes

Re : Erreur macro simple, erreur 400

Salut Craps,

Ton code est éronné, essaye plutôt cela
Code:
Sub GenererSynthese()
Dim sh As Worksheet, Ctr As Integer
For Each sh In Sheets
  If sh.Name <> "Synthese" Then
    Ctr = Ctr + 1
    With Sheets("Synthese")
      .Range("A" & 10 + Ctr) = sh.Name
      .Range("B" & 10 + Ctr) = Sheets(sh.Name).Range("G9")
      .Range("C" & 10 + Ctr) = Sheets(sh.Name).Range("A12")
      .Range("H" & 10 + Ctr) = Sheets(sh.Name).Range("H50")
    End With
  End If
Next
End Sub

Voilà 😉
 
Re : Erreur macro simple, erreur 400

Bonsoir,

On peut aussi utiliser la variable "Sh" au maximum pour avoir un code légèrement simplifié :
Code:
Sub GenererSynthese()
  Dim [B]Sh[/B] As Worksheet, Ctr As Integer
  Ctr = 10
  For Each [B]Sh[/B] In Sheets
    If [B]Sh[/B].Name <> "Synthese" Then
      Ctr = Ctr + 1
      With Sheets("Synthese")
        .Range("A" & Ctr) = [B]Sh.[/B]Name
        .Range("B" & Ctr) = [B]Sh.[/B]Range("G9")
        .Range("C" & Ctr) = [B]Sh.[/B]Range("A12")
        .Range("H" & Ctr) = [B]Sh.[/B]Range("H50")
      End With
    End If
  Next
End Sub
 
Re : Erreur macro simple, erreur 400

Wonderful, wunderbach...

ça marche.

Merci à vous deux (j'ai testé les 2).

Pouvez vous m'expliquer (jamais programmé en VB ni autre chose) simplement où était l'erreur ou en quoi consistait elle?

Merci
 
Re : Erreur macro simple, erreur 400

Re,

L'erreur est située dans la formulation de ta plage

Il en faut pas mettre : .Range("A1" & Ctr)

Mais : .Range("A" & Ctr) ou .Range("A" & 10 + Ctr)

Le "&" commercial n'est pas un signe d'addition, mais de concaténation

Voilà 😉
 
Re : Erreur macro simple, erreur 400

Merci de la précision.

Si j'ai bien compris la nature de l'erreur, A1 & Ctr s'arrete à 19 (Ctr9), la suite logique devant etre 110 (A1 & Ctr10)...
Ai je compris?


P?S. fait il beau dans le Gâtinais...j'y ai habité 3/4 ans dans un petit village à cote de Ferrieres, c'était sympa
 
Re : Erreur macro simple, erreur 400

Salut Craps,

Merci de la précision.
Si j'ai bien compris la nature de l'erreur, A1 & Ctr s'arrete à 19 (Ctr9), la suite logique devant etre 110 (A1 & Ctr10)...
Ai je compris?
Tout à fait, c'est exactement ça 😉

P.S. fait il beau dans le Gâtinais...j'y ai habité 3/4 ans dans un petit village à cote de Ferrieres, c'était sympa
Pour le temps, c'est toujours aussi mitigé comme un peu partout 🙄
Celui qui ne connais pas le gâtinais, loupe quelque chose 😀

A+
 
- 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
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

C
Réponses
1
Affichages
1 K
Cattleya97
C
A
Réponses
1
Affichages
2 K
T
Réponses
7
Affichages
1 K
timon
T
R
Réponses
4
Affichages
13 K
Roverman
R
R
Réponses
5
Affichages
4 K
R
E
Réponses
8
Affichages
2 K
Ewigefrost
E
M
Réponses
13
Affichages
2 K
martial58
M
Réponses
2
Affichages
2 K
Retour