VBA problèmes de variables ERREUR 1004
Fermé
luc
-
28 juin 2013 à 15:57
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 juin 2013 à 16:15
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 28 juin 2013 à 16:15
A voir également:
- VBA problèmes de variables ERREUR 1004
- Erreur 0x80070643 - Accueil - Windows
- Erreur 0x80070643 Windows 10 : comment résoudre le problème de la mise à jour KB5001716 - Accueil - Windows
- Erreur de lecture reconnecté en 3s - Forum TV & Vidéo
- Erreur 1004 vba ✓ - Forum VB / VBA
- Erreur 1001 outlook - Accueil - Bureautique
1 réponse
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
Modifié par pijaku le 28/06/2013 à 16:18
Modifié par pijaku le 28/06/2013 à 16:18
Bonjour,
Une InputBox, sans autre précision, renvoie une donnée de type String. Même si tu lui donne un nombre, elle le transforme en string...
Par conséquent, tu as deux choix :
Tu déclares tes variables As Long :
Inconvénient : il y a tout de même beaucoup de risque d'erreur...
Si un 0 est saisi, la macro plante
Si une lettre est saisie la macro plante...
Le code ci-dessous évite déjà quelques erreurs.
A tester :
Question subsidiaire : c'est quoi i??????? Par défaut je lui ai affecté 15 mais...
Cordialement,
Franck P
Une InputBox, sans autre précision, renvoie une donnée de type String. Même si tu lui donne un nombre, elle le transforme en string...
Par conséquent, tu as deux choix :
Tu déclares tes variables As Long :
Private Sub CommandButton4_Click() Dim Copiage As Long, Collage As Long Copiage = InputBox("Entrez le numero de la ligneEB! à copier", "COPIE", 0) Collage = InputBox("Entrez le numero de la lignePAC! où sera copier la ligne", "COLLAGE", 0) Sheets("PAC").Cells(Collage, 7).Value = Sheets("EB").Cells(i, Copiage).Value Sheets("pac").Cells(Collage, 8).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 9).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 20).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 19).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 25).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 10).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 32).Value = Feuil1.Cells(i, Copiage).Value End Sub
Inconvénient : il y a tout de même beaucoup de risque d'erreur...
Si un 0 est saisi, la macro plante
Si une lettre est saisie la macro plante...
Le code ci-dessous évite déjà quelques erreurs.
A tester :
Private Sub CommandButton4_Click() Dim Copiage As Long, Collage As Long Dim InBox1 As String, InBox2 As String Dim i As Long i = 15 InBox1 = "a" InBox2 = "b" Do While Not IsNumeric(InBox1) Or Not IsNumeric(InBox2) Or InBox1 = "" Or InBox2 = "" Or InBox1 = 0 Or InBox2 = 0 InBox1 = InputBox("Entrez le numero de la ligneEB! à copier", "COPIE", 0) InBox2 = InputBox("Entrez le numero de la lignePAC! où sera copier la ligne", "COLLAGE", 0) If Not IsNumeric(InBox1) Or Not IsNumeric(InBox2) Or InBox1 = "" Or InBox2 = "" Or InBox1 = 0 Or InBox2 = 0 Then MsgBox "Format de données erroné. Saisie numérique obligatoire" End If Loop Copiage = CLng(InBox1) Collage = CLng(InBox2) Sheets("PAC").Cells(Collage, 7).Value = Sheets("EB").Cells(i, Copiage).Value Sheets("pac").Cells(Collage, 8).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 9).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 20).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 19).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 25).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 10).Value = Feuil1.Cells(i, Copiage).Value Sheets("PAC").Cells(Collage, 32).Value = Feuil1.Cells(i, Copiage).Value End Sub
Question subsidiaire : c'est quoi i??????? Par défaut je lui ai affecté 15 mais...
Cordialement,
Franck P