Déclaration des variables

Bonjour, je débute sur Excel VBA.

Et je n'arrive pas à faire une déclaration explicite des variables.

Par exemple, je souhaiterais demander à l’utilisateur de taper un nombre compris entre 6 et 16 (bornes comprises)

Lorsque l’utilisateur validera son entrée, le programme doit afficher une boîte de dialogue affichant le nombre tapé augmenté de l’entrée précédente.

Voici un exemple : 1ere utilisation de la procédure, l’utilisateur tape 16, le programme affiche 16

2e utilisation de la procédure, l’utilisateur tape 26, le programme affiche 42 (26+16) et ainsi de

suite.

Je vous remercie, j'ai essayé de chercher des TUTOS youtube etc... mais je n'y comprends vraiment pas grand chose.

Je vous souhaite une bonne journée,

Bonjours consonnes, bonjour el forum,

Pas très clair ton histoire !...

Par exemple, je souhaiterais demander à l’utilisateur de taper un nombre compris entre 6 et 16 (bornes comprises)...

2e utilisation de la procédure, l’utilisateur tape 26...

Ou sont passées les bornes ?!... Elles n'existent qu'au premier coup ?...

Si tu fermes le fichier excel puis le ré ouvres, ça repart à zéro ?

En attendant tes réponses...

Bonjour,

Merci pour ton retour,

L'exercice que je suis en train de réaliser pour m'entraîner me demande les informations suivantes :

Créez une procédure qui :

  • Demandera à l’utilisateur de taper un nombre compris entre 6 et 16 (bornes comprises)
  • Lorsque l’utilisateur validera son entrée, le programme doit afficher une boîte de dialogue
affichant le nombre tapé augmenté de l’entrée précédente.

Exemple : 1ere utilisation de la procédure, l’utilisateur tape 16, le programme affiche 16

2e utilisation de la procédure, l’utilisateur tape 26, le programme affiche 42 (26+16) et ainsi de

suite.

Je n'ai pas plus d’éléments, c'est pour cela que je ne peux pas être plus clair.

Après avoir fait quelques recherches sur le net, j'ai cru comprendre que je devais mettre un InputBox...

Désolée de ne pas pouvoir être plus claire

Mais merci pour votre retour,

Re,

Une proposition. Dans un module standard :

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DEST As Range   'déclare la variable DEST (cellule de destination)
Dim BE As Variant 'déclare la variable BE (Boite d'Entrée)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Set DEST = Cells(1, Application.Columns.Count) 'définit la cellule de destination DEST (dernière cellule de la ligne 1)
ici: 'étiquette
BE = Application.InputBox("Tapez un nombre entier !", "ENTRÉE", Type:=1) 'définit la boîte d'entrée BE
If CInt(BE) <> BE Then GoTo ici 'si nombre décimal retourne à la boîte d'entrée
DEST.Value = BE + DEST.Value 'renvoie dans DEST la valeur de la boîte d'entrée BE plus l'ancienne valeur stockée
If BE = False Or BE = "" Then Exit Sub 'si bouton [Annuler] ou non renseignée, sort de la procédure
MsgBox DEST.Value 'message
GoTo ici 'va à l'étiquette "ici"
End Sub

Et si tu veux qu'à la fermeture ça remette à zéro, dans le composant ThisWorkbook :

Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DEST As Range   'déclare la variable DEST (cellule de destination)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter à ton cas)
Set DEST = Cells(1, Application.Columns.Count) 'définit la cellule de destination DEST (dernière cellule de la ligne 1)
DEST.ClearContents 'efface le contenu de DEST
Me.Save
End Sub

Bonjour,

Thauthème a raison c'est vraiment pas clair

"Créez une procédure qui :

-Demandera à l’utilisateur de taper un nombre compris entre 6 et 16 (bornes comprises)"'

2e utilisation de la procédure, l’utilisateur tape 26, le programme affiche 42 (26+16) et ainsi de

suite.

Comment l'utilisateur pourrait saisir 26 puisque ta première demande de procédure indique que l'utilisateur doit

taper un nombre en 6 et 16.

Commences par faire ton raisonnement sur un onglet excel avant de passer au vba

Re,

Je n'avais pas pris en compte les bornes la première fois. Le code corrigé.

Sub Macro1()
Dim O As Worksheet 'déclare la variable O (Onglet)
Dim DEST As Range   'déclare la variable DEST (cellule de destination)
Dim BE As Variant 'déclare la variable BE (Boite d'Entrée)

Set O = Worksheets("Feuil1") 'définit l'onglet O (à adapter a ton cas)
Set DEST = Cells(1, Application.Columns.Count) 'définit la cellule de destination DEST (dernière cellule de la ligne 1)
ici1: 'étiquette 1
BE = Application.InputBox("Tapez un nombre entier entre 6 et 16!", "ENTRÉE", Type:=1) 'définit la boîte d'entrée BE
If CInt(BE) <> BE Then GoTo ici1 'si nombre décimal retourne à la boîte d'entrée
If BE > 16 Or BE < 6 Then GoTo ici1 'si le nombre n'est pas dans la fourchette, va à l'étiquette ici1
If BE = False Or BE = "" Then Exit Sub 'si bouton [Annuler] ou non renseignée, sort de la procédure
DEST.Value = BE 'renvoie la valeur de BE dans dest
ici2: 'étiquette 2
BE = Application.InputBox("Tapez un nombre entier !", "ENTRÉE", Type:=1) 'définit la boîte d'entrée BE
If CInt(BE) <> BE Then GoTo ici2 'si nombre décimal retourne à la boîte d'entrée
DEST.Value = BE + DEST.Value 'renvoie dans DEST la valeur de la boîte d'entrée BE plus l'ancienne valeur stockée
If BE = False Or BE = "" Then Exit Sub 'si bouton [Annuler] ou non renseignée, sort de la procédure
MsgBox DEST.Value 'message
GoTo ici2 'va à l'étiquette "ici2"
End Sub

[Édition]

Bonjour Xmenpl, nos posts se sont croisés...

[Édition 2]

Avec ce code la seconde procédure dans ThisWorkbook n'a plus besoin d'être...

Bonjour, salut ThauThème, Xmenpl,

Une autre proposition :

Dim MonNombre As Integer 'Variable déclarée hors procédure pour ne pas effacer sa valeur entre 2 éxécutions
Sub MonCumul()

Dim AncienNb As Integer
AncienNb = MonNombre
If AncienNb = 0 Then 'Première exécution
    Do
        MonNombre = Application.InputBox("Entrez un nombre entre 6 et 16 :", Type:=1) 'Avec bornes
    Loop Until MonNombre <= 16 And MonNombre >= 6
Else 'Exécutions suivantes (sans bornes)
    MonNombre = Application.InputBox("Entrez un nombre :", Type:=1)
End If
MsgBox ("Mon calcul est égal à " & MonNombre + AncienNb & " (" & MonNombre & " + " & AncienNb & ")")
MonNombre = MonNombre + AncienNb

End Sub
Rechercher des sujets similaires à "declaration variables"