VBA - valeur non mémorisée
Résolu
Tehani_t
Messages postés
240
Date d'inscription
Statut
Membre
Dernière intervention
-
Tehani_t Messages postés 240 Date d'inscription Statut Membre Dernière intervention -
Tehani_t Messages postés 240 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Dans un fichier excel, en Feuil1, j'ai une procédure
Sub controle_saisie_mat()
Do
matricule = InputBox("Saisir le matricule", "Controle de saisie", "18183")
If Not IsNumeric(matricule) Then
MsgBox ("Une valeur numérique est requise !")
End If
Loop Until IsNumeric(matricule)
End Sub
En Feuil5, j'ai un programme qui fait appel à cette procedure :
Private Sub bt_archiv_av_Click()
Dim num_li, num_col, nb_colonnes, j As Integer
Dim ddate, an, gr, ech, aca, acm, acj, ok As String
ok = "non"
'Appel de la procédure controle_saisie_mat
Call Feuil1.controle_saisie_mat
MsgBox (matricule)
...
End sub
Quand j'affiche le matricule, matricule ne contient aucune valeur. Pourquoi ?
Merci !
Dans un fichier excel, en Feuil1, j'ai une procédure
Sub controle_saisie_mat()
Do
matricule = InputBox("Saisir le matricule", "Controle de saisie", "18183")
If Not IsNumeric(matricule) Then
MsgBox ("Une valeur numérique est requise !")
End If
Loop Until IsNumeric(matricule)
End Sub
En Feuil5, j'ai un programme qui fait appel à cette procedure :
Private Sub bt_archiv_av_Click()
Dim num_li, num_col, nb_colonnes, j As Integer
Dim ddate, an, gr, ech, aca, acm, acj, ok As String
ok = "non"
'Appel de la procédure controle_saisie_mat
Call Feuil1.controle_saisie_mat
MsgBox (matricule)
...
End sub
Quand j'affiche le matricule, matricule ne contient aucune valeur. Pourquoi ?
Merci !
A voir également:
- VBA - valeur non mémorisée
- Logiciel gratuit calcul valeur nutritionnelle - Télécharger - Santé & Bien-être
- Valeur ascii - Guide
- Valeur relative et absolue ✓ - Forum Webmastering
- Faites afficher avec un fond coloré les cellules qui contiennent une valeur comprise entre 250 et 350. quel nombre est dessiné en surbrillance ? ✓ - Forum Excel
- Excel ne pas afficher #valeur ✓ - Forum Excel
6 réponses
Re le forum
Modifie ton programme ainsi :
Dans le module de la feuille 5
Dans le Module1 (Insertion¨> Module)
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
Modifie ton programme ainsi :
Dans le module de la feuille 5
Private Sub bt_archiv_av_Click() Dim num_li As Integer Dim num_col As Integer Dim nb_colonnes As Integer Dim j As Integer Dim ddate As Date Dim an As String Dim gr As String Dim ech As String Dim aca As String Dim acm As String Dim acj As String Dim ok As String ok = "non" 'Appel de la procédure controle_saisie_mat Call Module1.controle_saisie_mat MsgBox (matricule) 'suite du code End Sub
Dans le Module1 (Insertion¨> Module)
Public matricule As String Sub controle_saisie_mat() Do matricule = InputBox("Saisir le matricule", "Controle de saisie", "18183") If Not IsNumeric(matricule) Then MsgBox ("Une valeur numérique est requise !") End If Loop Until IsNumeric(matricule) End Sub
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
Tehani_t
Messages postés
240
Date d'inscription
Statut
Membre
Dernière intervention
21
Merci BCP !!! ca marche !!! j'apprends bcp sur ce site Merci !!
Bonjour,
Il faut que ta variable matricule soit déclarée avec
Si tu l'as déclarée dans un autre module déclare là avec public au lieu de dim qu'elle soit visible de tous les modules.
eric
Il faut que ta variable matricule soit déclarée avec
dim matricule as stringau niveau module (en haut, en dehors de toute procédure) pour qu'elle soit visible par toutes les procédures du module.
Si tu l'as déclarée dans un autre module déclare là avec public au lieu de dim qu'elle soit visible de tous les modules.
eric
Salut le forum
La déclaration de variable Public doit se faire dans un module Standard
et non dans le module de la feuille. (Module1 ou autres)
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
La déclaration de variable Public doit se faire dans un module Standard
et non dans le module de la feuille. (Module1 ou autres)
Mytå
Merci de donner suite à votre question, nous ne sommes pas des robots...
Versions installées [MsProject 2003(FR), Excel 2003-2007(FR)]
Re le forum
Petite précision
Dim num_li, num_col, nb_colonnes, j As Integer
Dim ddate, an, gr, ech, aca, acm, acj, ok As String
Dans ta déclaration de variables:
j est Integer et num_li, num_col, nb_colonnes sont Variant.
ok est String et ddate, an, gr, ech, aca, acm, acj sont Variant.
Mytå
Petite précision
Dim num_li, num_col, nb_colonnes, j As Integer
Dim ddate, an, gr, ech, aca, acm, acj, ok As String
Dans ta déclaration de variables:
j est Integer et num_li, num_col, nb_colonnes sont Variant.
ok est String et ddate, an, gr, ech, aca, acm, acj sont Variant.
Mytå
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bonjour,
Moi personnellement je t'aurai conseiller ceci:
Sub bt_archiv_av_Click()
Dim num_li As Integer
Dim num_col As Integer
Dim nb_colonnes As Integer
Dim j As Integer
Dim ddate As Date
Dim an As String
Dim gr As String
Dim ech As String
Dim aca As String
Dim acm As String
Dim acj As String
Dim ok As String
ok = "non"
'Appel de la procédure controle_saisie_mat
Call controle_saisie_mat(matricule)
MsgBox (matricule)
'suite du code
End Sub
Dans le Module1
Function controle_saisie_mat(matricule as string)
Do
matricule = InputBox("Saisir le matricule", "Controle de saisie", "18183")
If Not IsNumeric(matricule) Then
MsgBox ("Une valeur numérique est requise !")
End If
Loop Until IsNumeric(matricule)
End function
N'oublie pas de détruire les variables locales et la variable de fonction ne porte pas forcement le même nom que la variable d'où elle fut appelé.
Moi personnellement je t'aurai conseiller ceci:
Sub bt_archiv_av_Click()
Dim num_li As Integer
Dim num_col As Integer
Dim nb_colonnes As Integer
Dim j As Integer
Dim ddate As Date
Dim an As String
Dim gr As String
Dim ech As String
Dim aca As String
Dim acm As String
Dim acj As String
Dim ok As String
ok = "non"
'Appel de la procédure controle_saisie_mat
Call controle_saisie_mat(matricule)
MsgBox (matricule)
'suite du code
End Sub
Dans le Module1
Function controle_saisie_mat(matricule as string)
Do
matricule = InputBox("Saisir le matricule", "Controle de saisie", "18183")
If Not IsNumeric(matricule) Then
MsgBox ("Une valeur numérique est requise !")
End If
Loop Until IsNumeric(matricule)
End function
N'oublie pas de détruire les variables locales et la variable de fonction ne porte pas forcement le même nom que la variable d'où elle fut appelé.