VBA Conseil sur déclaration Dim

Bonjour au forum,

sur ce bout de code, je ne sais pas trop quoi mettre comme Dim As....

avec As integer, çà ne marche pas et sans rien çà marche !

Dim rep   ' As Integer
rep = InputBox("entrez le mot de passe" & Chr(10) & "MDP = bibi")
If rep <> "bibi" Or rep = "" Then Exit Sub

que faut-il mettre ?

J'ai essayé As de pique, mais .... !!

Bonne journée

Claude.

Bonjour Claude,

As-tu essayé :

Dim rep As String

ou

Dim rep$

PS : Si tu n'a pas le code "Option Explicit" au début de ta macro(cf Outils/Options/Editeur/Paramètre du code/l'option "déclaration des variables obligatoires" cochée), tu n'est pas obligé de déclarer tes variables préalablement (dans la programmation, la déclaration des variables avant l'utilisation est vivement conseillée). L'affectation d'une variable par une valeur, par exemple dans ton code

rep = InputBox("entrez le mot de passe" & Chr(10) & "MDP = bibi")

vaut une déclaration précitée.

13pages-pret.xlsx (34.26 Ko)

Bonjour,

Un complément à Raja.

Si tu ne déclares pas tes variables, sache qu'elles seront déclarées en type VARIANT par défaut. Ce qui n'est jamais conseillé évidemment.

Amicalement

Dan

Bonjour Raja,

Avec ton PS, là, je viens d'apprendre quelque chose !

en effet, je voyais souvent dans les programmes ; "Option Explicit" sans savoir à quoi

çà servait, c'est pourquoi je ne l'utilise jamais.

Tu me conseille donc de mettre en début de module "Option Explicit" et de déclarer toutes

les variables ? (ceci en règle générale)

cette "Option Explicit" est valable pour tout le module ou faut-il la mettre à chaque macro ?

Pour en revenir à mon code, As String fonctionne bien.

Je te remercie pour ces renseignements qui me font avancé.

amicalement

Claude.

édit: Dan, je commence seulement à piger un peu les variables

Re Claude, Salut Dan,

Si tu coches l'option de déclaration obligatoire des variables, le code "Option Explicit" s'inscrit automatiquement (peut être, il faut redemarrer excel) au début du chaque code (avant le Sub avec une ligne de séparation) dans tous les modules. A partir de là, il y aura un contrôle des variables non déclarées.

PS : voir le lien suivant pour plus d'explications

Lien

re,

Bon, d'accord !

En résumé, et dites-moi si je me trompe, "Option Explicit" , agit un peu comme un pense-bête , pour obliger à déclarer les variables. c'est çà non ?

Et c'est fortement recommandé !

au moment de poster, je vois ton Lien, Raja que j'ai lu en diagonale et qui semble dire la même chose.

Je note l'adresse de ce lien qui parait bien expliqué et que je vais éplucher.

encore merci

Claude.

re,

Avant de fermer ce post,

Dim sh
        For Each sh In Array("base", "Feuille_route", "listes")
            Sheets(sh).Visible = xlVeryHidden
        Next sh

ici Dim sh (sans As...)

çà marche, mais quel serait le As.. le + adapté ? et s'il en faut un ?

(je ne comprends pas la définition du "String", qui parle de milliards ! )

amicalement

Claude.

Claude,

Mets Dim sh As object

Edite ton code comme suit :

Dim sh As Object
For Each sh In Sheets(Array("base", "Feuille_route", "listes"))
sh.Visible = xlVeryHidden
Next sh

Dan

Dan,

Ok pour ton code modifié,

En avançant dans mon apprentissage VBA, j'en arrive forcément aux variables,

il faut que je buche la dessus !

Le lien de Raja. va m'y aider.

merci à vous deux

à+.....Claude.

Nad-Dan a écrit :

Claude,

Mets Dim sh As object

Edite ton code comme suit :

Dim sh As Object
For Each sh In Sheets(Array("base", "Feuille_route", "listes"))
sh.Visible = xlVeryHidden
Next sh

Dan

Salut tous,

Comme Claude je continue de découvrir, et de comprendre des trucs grace à vous. Merci !

Pour le coup j'aurais mis Dim sh as worksheet...

Ca aurait été plus précis, pareil, ou mauvais

Edit : Claude le string tu l'utilise pour tout ce qui est chaîne de caractères (nom de fichier, réponse à une inputbox, texte contenu dans cellule, valeur d'un msgbox...)

Re,

Effectivement Sylvain, c'est même mieux de déclarer comme "Worksheet". On gagnera en rapidité.

'Object" étant plus un terme générique alors que "Worksheet "est bien spécifique à une feuille.

Bonne journée

Dan

re,

Voilà, c'est ce genre d'info. que je recherche !

- dans quel cas utiliser tel ou tel As...

N'existe t-il pas une liste ou un lien pour çà ?

Celui de Mytå n'oriente pas très bien, je pense !

merci Sylvain et Dan

Claude.

Re Claude,

Dans l'éditeur VBA, en cliquant sur l'aide Excel, cherche sous l'intitulé "rsum de types de données" tu trouveras un peu plus de détails à ce que tu cherches. L'utilisation de ces types dépend des données qu'on veut manipuler.

re,

Bon ! je vais éplucher tout çà.

merci à tous

Claude.

Rechercher des sujets similaires à "vba conseil declaration dim"