2 p'tites questions pas difficiles...je pense !!

  • Initiateur de la discussion Initiateur de la discussion vinnie
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

V

vinnie

Guest
Salut à tous !!

je ne m'y connais pas beaucoup en prog, mais j'essaye de faire un p'ti fichier excel, et j'aurais 2 petites questions simples (...enfin simples pour vous je suppose lol)!?

_________________
sub monfichier()
...

dim Nlignes as integer
...
if Nlignes < 2 or Nlignes > 8 then
msgbox "La matrice doit etre entre 2 et 8

end if

...
end sub
_________________

1) je souhaiterais pour ma condition que si Nlignes n'est pas entre 2 et 8, il m'affiche le message (jusque la pas de souci !!), mais surtout que dans ce cas il retourne au début de la macro en question, et donc qu'il recommence la macro en gros !!??...je suppose qu'il faut metttre un return quelque chose peut etre ?? merci

2) 2ème petite chose, comment faire pour utiliser une variable deja nommée dans une autre macro du meme fichier ??...j'ai essayé public variable as integer, mais marche pas, doije le mettre autre part ??

voila, quelqu'un saurait-il me dire, merci beaucoup par avance !! 🙄
 
Re : 2 p'tites questions pas difficiles...je pense !!

Bonsoir,
pour sortir sans "sortir", il te suffit de mettre un Exit Sub

Code:
MsgBox "La matrice doit etre entre 2 et 8": Exit Sub

Pour la 2 ème question, il faut déclarer la variable en Public dans un module standard, et bien choisir le type de variable (integer va de -32 768 et 32 767), et à priori, tu l'utilises pour des lignes (65536 pour Excel 2003), donc vaut mieux la déclarer en Long
 
Re : 2 p'tites questions pas difficiles...je pense !!

Bonsoir Bhbh,

merci pour ta réponse !! 🙂
exit sub marche très bien merci je connaissais pas, mais dans mon cas je veux pas sortir mais plutot relancer la macro.
Dans ma macro je demande un chiffre avec une boite massage, et puis si le chiffre rentré n'est pas entre 2 et 8, il me le signale et donc après je voudrais que ca relance automatiquement la macro pour me redemander à nouveau un chiffre, sans sortir réellement, désolé je n'ai peut etre pas été assez claire !?

...par contre pour le deuxième, pas encore essayé mais ca veut dire quoi un module standard ?? désolé ! 😛
...ma variable publique en question est la précédente donc c'est un chiffre entre 2 et 8, integer ca suffit pas alors ??

Vinnie
 
Re : 2 p'tites questions pas difficiles...je pense !!

Re-,
peux-tu joindre tout le code, et non pas des ......😉
Cela sera plus facile

PS : dans quelle autre procédure as-tu besoin de ta variable?

Un module standard, est un module indépendant des feuilles. Lorsque tu fais Alt + F11, tu peux avoir quatre types d'objet :

- Microsoft Excel Objects : qui regroupent tous les onglets plus le classeur
- Feuilles : qui contient les userforms
- Modules : qui contient les modules standard
- Modules de classe : qui contient les macros style "Module de classe"

Seul le premier est obligatoirement présent, les autres dépendent du classeur.
Pour insérer un module standard, tu fais un clic droit sur le nom de ton classeur et tu fais Insérer/Module (tout ceci dans le VBE Alt + F11)
Les variables publiques doivent être déclarées dans ce module standard

Edit : et pour ta dernière question, effectivement, si la variable doit être comprise entre 2 et 8, Integer suffit, et même Byte, qui va jusqu'à 255, soit besoin en mémoire moindre
 
Dernière édition:
Re : 2 p'tites questions pas difficiles...je pense !!

Re

ouch !!
..j'avoue avoir un peu de mal à tout saisir 😛
je pourrais mais ce serait peut etre un peu long je crois!! 😱
...en fait j'ai créé un fichier excel, avec 3 bouton différents associées à 3 petite macros, un premier bouton pour créer une matrice (en fonction justement de la variable Nlignes justement !!...un bouton simple permettant de tout effacer, et un 3ème et dernier bouton qui fait un produit de matrices en gros ou j'ai justement besoin de récuperer cette variable Nlignes, voila pour pas trop rentrer dans les détails !!
...mais apparement c'est pas si simple que je croyais !! arfff !!


...mais merci pour ces explications tout de meme, ca m'aide un peu !! 😛

Vinnie
 
Re : 2 p'tites questions pas difficiles...je pense !!

Salut

pour ta premiere question une boucle devrai suffir

code:
sub monfichier()
dim Nlignes as integer,rep as string
do
rep=inputbox ("Nombres de lignes pour la matrices ?")
Nligne=val(rep)
if Nlignes < 2 or Nlignes > 8 then msgbox "La matrice doit etre entre 2 et 8
loop until Nlignes<2 or Nlignes>8
end sub

Mef tu ne peux pas sortir de cette macro tant que Nlignes n'est pas bon !! un utilisateur 'borne' va rester bloque
 
Re : 2 p'tites questions pas difficiles...je pense !!

salut dudu,

une boucle ??..pourquoi pas, ok merci je vais voir ca!! 🙂
mais demain peut-etre aussi, dodo pour moi !?

merci dudu 🙂

Vinnie
 
Re : 2 p'tites questions pas difficiles...je pense !!

Re-,
justement, je pense que tu as mis le code dans un code de feuille (le code apparaît dans le code de la feuille)
Il faut que tu déclares la variable Public dans un module standard

regardes un petit exemple
Sur le commandbutton1, tu entres un nombre entre 2 et 8
sur le bouton2, tu récupères ce nombre
 

Pièces jointes

- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

L
Réponses
9
Affichages
1 K
Réponses
3
Affichages
1 K
H
Réponses
2
Affichages
2 K
H
A
Réponses
17
Affichages
3 K
Ananas94
A
Retour