Excel macro : Erreur
deneje
Messages postés
6
Statut
Membre
-
deneje Messages postés 6 Statut Membre -
deneje Messages postés 6 Statut Membre -
Bonjour,
Je suis en train d'écrire un code pour une macro excel qui me permet lorsque j'active un bouton sur une feuille de lancer une petite fenêtre ou je rentre un choix (un nombre compris entre 0 et 1). Ce choix servira de point de comparaison. Je parcours ensuite mes différentes feuilles de calculs (f(i)) pour comparer ma valeur rentrée à celle se trouvant en L5...L831 et si celle-ci est plus grande ou égale à cette valeur, je dois copier la valeur se trouvant en en A5...A831 dans la feuille temp. La colonne dans temp doit se décaler d'une à chaque fois que je change de feuille...
Voilà mon code qui évidemment ne fonctionne pas...
Private Sub CommandOK_Click()
Dim Val As Single
Dim x As Integer
Dim f(15)
Dim a(15)
f(1) = "-6"
f(2) = "-5"
f(3) = "-4"
f(4) = "-3"
f(5) = "-2"
f(6) = "-1"
f(7) = "0"
f(8) = "centre théorique - 1"
f(9) = "2"
f(10) = "3"
f(11) = "4"
f(12) = "5"
f(13) = "6"
f(14) = "7"
f(15) = "8"
a(1) = "A"
a(2) = "B"
a(3) = "C"
a(4) = "D"
a(5) = "E"
a(6) = "F"
a(7) = "G"
a(8) = "H"
a(9) = "I"
a(10) = "J"
a(11) = "K"
a(12) = "L"
a(13) = "M"
a(14) = "N"
a(15) = "O"
Val = TextVal.Value
x = 1
If Val <= 0 Or Val > 1 Then
MsgBox "Vérifier les données entrée", vbOKOnly, "Erreur"
TextVal.SetFocus
Exit Sub
End If
For i = 1 To 15
Sheets(f(i)).Select
For j = 5 To 831
If Sheets(f(i)).Range("Lj").Value >= Val Then
Sheets("temp").Activate
ActiveSheet.Range("a(i)2").End(xlDown).Offset(1, 0).Select = Sheets(f(i)).Range("a(i)j").Value
Exit Sub
End If
Next j
Next i
Unload Me
End Sub
Et tant que j'y suis, peut-on à partir des données récoltées dans ma feuille temp en faire un résumé que j'afficherai en faisant apparaitre une fenêtre du genre Userforme?
Un tout grand merci pour votre aide
Je suis en train d'écrire un code pour une macro excel qui me permet lorsque j'active un bouton sur une feuille de lancer une petite fenêtre ou je rentre un choix (un nombre compris entre 0 et 1). Ce choix servira de point de comparaison. Je parcours ensuite mes différentes feuilles de calculs (f(i)) pour comparer ma valeur rentrée à celle se trouvant en L5...L831 et si celle-ci est plus grande ou égale à cette valeur, je dois copier la valeur se trouvant en en A5...A831 dans la feuille temp. La colonne dans temp doit se décaler d'une à chaque fois que je change de feuille...
Voilà mon code qui évidemment ne fonctionne pas...
Private Sub CommandOK_Click()
Dim Val As Single
Dim x As Integer
Dim f(15)
Dim a(15)
f(1) = "-6"
f(2) = "-5"
f(3) = "-4"
f(4) = "-3"
f(5) = "-2"
f(6) = "-1"
f(7) = "0"
f(8) = "centre théorique - 1"
f(9) = "2"
f(10) = "3"
f(11) = "4"
f(12) = "5"
f(13) = "6"
f(14) = "7"
f(15) = "8"
a(1) = "A"
a(2) = "B"
a(3) = "C"
a(4) = "D"
a(5) = "E"
a(6) = "F"
a(7) = "G"
a(8) = "H"
a(9) = "I"
a(10) = "J"
a(11) = "K"
a(12) = "L"
a(13) = "M"
a(14) = "N"
a(15) = "O"
Val = TextVal.Value
x = 1
If Val <= 0 Or Val > 1 Then
MsgBox "Vérifier les données entrée", vbOKOnly, "Erreur"
TextVal.SetFocus
Exit Sub
End If
For i = 1 To 15
Sheets(f(i)).Select
For j = 5 To 831
If Sheets(f(i)).Range("Lj").Value >= Val Then
Sheets("temp").Activate
ActiveSheet.Range("a(i)2").End(xlDown).Offset(1, 0).Select = Sheets(f(i)).Range("a(i)j").Value
Exit Sub
End If
Next j
Next i
Unload Me
End Sub
Et tant que j'y suis, peut-on à partir des données récoltées dans ma feuille temp en faire un résumé que j'afficherai en faisant apparaitre une fenêtre du genre Userforme?
Un tout grand merci pour votre aide
A voir également:
- Excel macro : Erreur
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
1 réponse
Bonsoir,
Ce qui ne va pas dans ta macro, c'est le référencement aux cellules.
Voila comment ecrire
Cordialement.
Ce qui ne va pas dans ta macro, c'est le référencement aux cellules.
Voila comment ecrire
For i = 1 To 15
Sheets(f(i)).Select
For j = 5 To 831
If Sheets(f(i)).Range("L" & j).Value >= Val Then
Sheets("temp").Activate
ActiveSheet.Range(a(i) & "2").End(xlDown).Offset(1, 0).Select = Sheets(f(i)).Range(a(i) & j).Value
Exit Sub
End If
Next j
Next i
Cordialement.
Il m'indique une erreur 1004