VBA Conseil sur déclaration Dim  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

VBA Conseil sur déclaration Dim  Sujet résolu

Messagepar dubois » 28 Oct 2008, 15:24

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 !
Code: Tout sélectionner
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.
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Messagepar Raja » 28 Oct 2008, 15:31

Bonjour Claude,

As-tu essayé :
Code: Tout sélectionner
Dim rep As String
ou
Code: Tout sélectionner
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
Code: Tout sélectionner
rep = InputBox("entrez le mot de passe" & Chr(10) & "MDP = bibi")
vaut une déclaration précitée.
Cdlt,
Raja
Membre impliqué
 
Messages: 1988
Inscription: 03 Fév 2008, 13:52
Localisation: Région Lyonnaise
Version Excel: 2000, 2002, 2003, 2007 FR

Messagepar Nad-Dan » 28 Oct 2008, 16:15

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
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar dubois » 28 Oct 2008, 16:31

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
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Messagepar Raja » 28 Oct 2008, 16:42

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
Cdlt,
Raja
Membre impliqué
 
Messages: 1988
Inscription: 03 Fév 2008, 13:52
Localisation: Région Lyonnaise
Version Excel: 2000, 2002, 2003, 2007 FR

Messagepar dubois » 28 Oct 2008, 19:50

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.
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Messagepar dubois » 28 Oct 2008, 22:01

re,

Avant de fermer ce post,
Code: Tout sélectionner
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.
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Messagepar Nad-Dan » 28 Oct 2008, 22:15

Claude,

Mets Dim sh As object

Edite ton code comme suit :
Code: Tout sélectionner
Dim sh As Object
For Each sh In Sheets(Array("base", "Feuille_route", "listes"))
sh.Visible = xlVeryHidden
Next sh

Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar dubois » 28 Oct 2008, 22:49

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.
Faire simple, c'est ce qui est le plus compliqué ! et vice versa (à méditer)
dubois
Passionné d'Excel
 
Messages: 9258
Inscription: 08 Déc 2007, 12:03
Localisation: MEUDON région parisienne
Version Excel: Vista Office 2007FR

Messagepar Sylvain TBM » 29 Oct 2008, 08:46

Nad-Dan a écrit:Claude,

Mets Dim sh As object

Edite ton code comme suit :
Code: Tout sélectionner
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... :roll:

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...)
Il vaut mieux 10 qui savent que 1 qui cherche....
Avatar de l’utilisateur
Sylvain TBM
Membre dévoué
 
Messages: 541
Inscription: 11 Juin 2008, 17:35
Localisation: Mazamet, con !
Version Excel: 2003 FR

Suivante

Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], CB60, galopin01, Google Adsense [Bot] et 41 invités