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

vinnie

XLDnaute Junior
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 !! :rolleyes:
 

Cousinhub

XLDnaute Barbatruc
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
 

vinnie

XLDnaute Junior
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é ! :p
...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
 

Cousinhub

XLDnaute Barbatruc
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:

vinnie

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

Re

ouch !!
..j'avoue avoir un peu de mal à tout saisir :p
je pourrais mais ce serait peut etre un peu long je crois!! :eek:
...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 !! :p

Vinnie
 

dudu29

XLDnaute Nouveau
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
 

Cousinhub

XLDnaute Barbatruc
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

  • vinnie_v1.zip
    10.8 KB · Affichages: 32
  • vinnie_v1.zip
    10.8 KB · Affichages: 26
  • vinnie_v1.zip
    10.8 KB · Affichages: 32

Discussions similaires

Statistiques des forums

Discussions
312 000
Messages
2 084 469
Membres
102 581
dernier inscrit
Michou