XL 2010 erreur d'exécution '9'

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

TAOK

XLDnaute Nouveau
Bonjour à tous
nouvelle sur ce forum et très débutante en Vba, mais je me lance
j'ai une erreur d'exécution sur la première ligne et je ne comprend pas pourquoi
Sub Archiver()
ligne = Sheets("Historique_facture").Range("A2").End(xlDown).Row + 1
Sheets("Historique_facture").Range("A" & ligne).Value = Sheets("Facture").Range("c13").Value
Sheets("Historique_facture").Range("B" & ligne).Value = Sheets("Facture").Range("c11").Value

j'ai un fichier facture qui devrait par une macro archiver celle ci dans une feuille Historique_facture
ci joint celui-ci

un grand merci pour votre aide mais je souhaiterais comprendre mes erreurs
Tao
 

Pièces jointes

Bonjour,

La feuille Historique_facture n'existant pas, cela explique le plantage.
Le nom de la feuille sur votre exemple est Historique _facture. (avec un espace)

Le souci de cette approche, c'est que si un utilisateur change le nom de la feuille, tu auras de nouveau cette erreur. Pour éviter cela, je te conseille de remplacer le nom de la feuille dans le code Sheets("Historique _facture") par le Codename de la feuille : feuil3 qui lui ne change pas.

Ton code devient alors :
VB:
Sub Archiver()
ligne = Feuil3.Range("A2").End(xlDown).Row + 1
Feuil3.Range("A" & ligne).Value = Sheets("Facture").Range("c13").Value
Feuil3.Range("B" & ligne).Value = Sheets("Facture").Range("c11").Value
End Sub
 
Bonjour,

La feuille Historique_facture n'existant pas, cela explique le plantage.
Le nom de la feuille sur votre exemple est Historique _facture. (avec un espace)

Le souci de cette approche, c'est que si un utilisateur change le nom de la feuille, tu auras de nouveau cette erreur. Pour éviter cela, je te conseille de remplacer le nom de la feuille dans le code Sheets("Historique _facture") par le Codename de la feuille : feuil3 qui lui ne change pas.

Ton code devient alors :
VB:
Sub Archiver()
ligne = Feuil3.Range("A2").End(xlDown).Row + 1
Feuil3.Range("A" & ligne).Value = Sheets("Facture").Range("c13").Value
Feuil3.Range("B" & ligne).Value = Sheets("Facture").Range("c11").Value
End Sub
Merci bcq
Je n'avais pas vu l'espace
Bonne soirée
 
Bonsoir le fil

Pour le fun (et pour m'aider à m'endormir)
VB:
Sub Archiver_bis()
Dim f As Worksheet: Set f = Sheets("Facture")
Feuil3.Cells(Rows.Count, 1).End(xlUp)(2).Resize(, 2) = Array(f.[C13], f.[C11])
End Sub
Normalement, le résultat est le même que ta macro originale.
 
- 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

Réponses
5
Affichages
236
Réponses
10
Affichages
547
Réponses
10
Affichages
825
Retour