Problème Excel
lserrane
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
Bonjour à tous,
J'ai une petite macro que j'essaie de réaliser pour les cours et j'ai le message suivant qui s'indique:
Erreur de compilation
Sub ou Fonction non définie
Voilà la prog çi dessous . Merci d'avance pour l'aide .
Sub test()
'
' test Macro
'
' Touche de raccourci du clavier: Ctrl+t
'
Cells(1, 1) = "Nom"
Cells(1, 2) = "Age début de carrières"
Cells(1, 3) = "Année de carrières"
Cells(1, 4) = "Age fin de carrières"
Cells(1, 5) = "Date de naissance"
Cells(1, 6) = "Age"
Cells(1, 7) = "Statut"
Cells(1, 8) = "Portion du salaire"
n = InputBox("Pour combien de personnes voulez-vous faire les calculs ?")
For i = 2 To n + 1
Cells(i, 1) = InputBox(" Quel est votre nom?")
debut: Cells(i, 2) = InputBox("A quel âge avez-vous commencé votre carrière")
Cells(i, 3) = ("Combien d'années de carrière avez-vous?")
Cells(i, 4) = Cells(i, 2) + Cells(i, 3)
datenais = InputBox("Quel est votre date de naissance ?")
Cells(i, 5) = datenais
Cells(i, 6) = calculage(datenais)
If Cells(i, 6) < Cells(i, 4) Then
rep = MsgBox("votre âge " & Cells(i, 6) & " est inférieur à votre âge fin de carrière " & Cells(i, 4) & " voulez-vous continuer ?")
If rep = vbNo Then
GoTo debut
End If
End If
If Cells(i, 6) >= 60 Then
Cells(i, 7) = "Pensionné"
c = c + 1
ElseIf Cells(i, 6) >= 55 And Cells(i, 6) < 60 Then
Cells(i, 7) = "Prepensionné"
Else
Cells(i, 7) = "En activité "
End If
Select Case Cells(i, 7)
Case "En activité"
Cells(i, 8) = 1
Case "Prépensionné "
Cells(i, 8) = Cells(i, 3) / 55
Case "Pensionné"
Cells(i, 8) = Cells(i, 3) / 55
End Select
Next i
If c <> o Then
MsgBox ("Il y a " & c & " pensionnés")
End If
maju ("A1:H1")
End Sub
J'ai une petite macro que j'essaie de réaliser pour les cours et j'ai le message suivant qui s'indique:
Erreur de compilation
Sub ou Fonction non définie
Voilà la prog çi dessous . Merci d'avance pour l'aide .
Sub test()
'
' test Macro
'
' Touche de raccourci du clavier: Ctrl+t
'
Cells(1, 1) = "Nom"
Cells(1, 2) = "Age début de carrières"
Cells(1, 3) = "Année de carrières"
Cells(1, 4) = "Age fin de carrières"
Cells(1, 5) = "Date de naissance"
Cells(1, 6) = "Age"
Cells(1, 7) = "Statut"
Cells(1, 8) = "Portion du salaire"
n = InputBox("Pour combien de personnes voulez-vous faire les calculs ?")
For i = 2 To n + 1
Cells(i, 1) = InputBox(" Quel est votre nom?")
debut: Cells(i, 2) = InputBox("A quel âge avez-vous commencé votre carrière")
Cells(i, 3) = ("Combien d'années de carrière avez-vous?")
Cells(i, 4) = Cells(i, 2) + Cells(i, 3)
datenais = InputBox("Quel est votre date de naissance ?")
Cells(i, 5) = datenais
Cells(i, 6) = calculage(datenais)
If Cells(i, 6) < Cells(i, 4) Then
rep = MsgBox("votre âge " & Cells(i, 6) & " est inférieur à votre âge fin de carrière " & Cells(i, 4) & " voulez-vous continuer ?")
If rep = vbNo Then
GoTo debut
End If
End If
If Cells(i, 6) >= 60 Then
Cells(i, 7) = "Pensionné"
c = c + 1
ElseIf Cells(i, 6) >= 55 And Cells(i, 6) < 60 Then
Cells(i, 7) = "Prepensionné"
Else
Cells(i, 7) = "En activité "
End If
Select Case Cells(i, 7)
Case "En activité"
Cells(i, 8) = 1
Case "Prépensionné "
Cells(i, 8) = Cells(i, 3) / 55
Case "Pensionné"
Cells(i, 8) = Cells(i, 3) / 55
End Select
Next i
If c <> o Then
MsgBox ("Il y a " & c & " pensionnés")
End If
maju ("A1:H1")
End Sub
A voir également:
- Problème Excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
- Comment trier par ordre alphabétique sur excel - Guide
2 réponses
Bonjour,
Tu n'indique pas sur quel ligne tu à l'erreur ?
Mais à 1ère vue, maju ("A1:H1") ne veux rien dire ?
Explique un peu mieux.
A+
Edit:
Aussi calculage(datenais)
En fait je pense qu'il te manque les fonctions Maju et CalculAge
il manque le InputBox sur la ligne..
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Tu n'indique pas sur quel ligne tu à l'erreur ?
Mais à 1ère vue, maju ("A1:H1") ne veux rien dire ?
Explique un peu mieux.
A+
Edit:
Aussi calculage(datenais)
En fait je pense qu'il te manque les fonctions Maju et CalculAge
il manque le InputBox sur la ligne..
Cells(i, 3) = ("Combien d'années de carrière avez-vous?")
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
J'ai rectifié toutes les erreurs...
Conseils :
Met Option Explicite en haut du module, ça évitera déjà les erreurs dans tes variables comme d'un o (lettre o) à la place de 0 (zéro)
Déclare tes variables.
Indente ton code.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.
Sub test()
' Touche de raccourci du clavier: Ctrl+t
Dim n As Integer, i As Integer, Rep, c As Integer
Dim DateNais As Date
Cells(1, 1) = "Nom"
Cells(1, 2) = "Age début de carrières"
Cells(1, 3) = "Année de carrières"
Cells(1, 4) = "Age fin de carrières"
Cells(1, 5) = "Date de naissance"
Cells(1, 6) = "Age"
Cells(1, 7) = "Statut"
Cells(1, 8) = "Portion du salaire"
n = InputBox("Pour combien de personnes voulez-vous faire les calculs ?")
For i = 2 To n + 1
Cells(i, 1) = InputBox(" Quel est votre nom?")
debut:
Cells(i, 2) = InputBox("A quel âge avez-vous commencé votre carrière")
Cells(i, 3) = InputBox("Combien d'années de carrière avez-vous?")
Cells(i, 4) = Cells(i, 2) + Cells(i, 3)
DateNais = InputBox("Quel est votre date de naissance ?")
Cells(i, 5) = DateNais
Cells(i, 6) = Year(Now) - Year(DateNais)
If Cells(i, 6) < Cells(i, 4) Then
Rep = MsgBox("votre âge " & Cells(i, 6) & " est inférieur à votre âge fin de carrière " & Cells(i, 4) & " voulez-vous continuer ?")
If Rep <> vbNo Then
GoTo debut
Else
Exit Sub
End If
End If
If Cells(i, 6) >= 60 Then
Cells(i, 7) = "Pensionné"
c = c + 1
ElseIf Cells(i, 6) >= 55 And Cells(i, 6) < 60 Then
Cells(i, 7) = "Prepensionné"
Else
Cells(i, 7) = "En activité "
End If
Select Case Cells(i, 7)
Case "En activité"
Cells(i, 8) = 1
Case "Prépensionné "
Cells(i, 8) = Cells(i, 3) / 55
Case "Pensionné"
Cells(i, 8) = Cells(i, 3) / 55
End Select
Next i
If c <> 0 Then
MsgBox ("Il y a " & c & " pensionnés")
End If
'maju ("A1:H1")
End Sub
Conseils :
Met Option Explicite en haut du module, ça évitera déjà les erreurs dans tes variables comme d'un o (lettre o) à la place de 0 (zéro)
Déclare tes variables.
Indente ton code.
A+
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
NOTE : Je ne répond pas aux MP pour les questions techniques.