Macro Excel, demande d'aide d'un débutant

cs_Fab117 Messages postés 23 Date d'inscription lundi 11 août 2003 Statut Membre Dernière intervention 9 janvier 2008 - 11 août 2003 à 17:21
Pom825 Messages postés 5 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 21 octobre 2003 - 21 oct. 2003 à 07:26
Bonjour,
Je suis en train de faire une macro pour Excel.
Le but de la macro est :
- Le premier onglet contient une série de chiffres entiers qui changeront au cours du temps.
- Les onglets suivants contiennent des chiffres entiers qui eux ne changeront pas.
- Le but est que lorsque je change les chiffres du 1er onglet, je puisse aller sur n'importe quel autre onglet, excécuter la macro et qu'il compare les chiffres de cet onglet avec ceux du premier onglet
- Finalement, au moyen d'une MsgBox, qu'il me dise le nombre de chiffre commun et qu'après il inscrive le chiffre dans une cellule bien précise de l'onglet en cours de consultation.

En fait, le premier onglet contient les chiffres du dernier tirage du lotto et les autres onglets contiennent les chiffres que j'ai joué.

Mes problèmes :
- Pour appliquer la même macro sur les différents onglets, je voudrais qu'il mémorise l'onglet actif d'où est exécutée la macro pour y revenir après avoir été enregistrer les variables (chiffres) du 1er onglet (pour l'instant, je suis obligé de nommer l'onglet où il doit revenir).

Il va sur le premier onglet et attribue cahque chiffre à des variables définies comme Integer :
Sheets("Tirages").Select
Set Tirage1erNumero = Range("D3")
...
Pour revenir à l'onglet d'où a été excécutée la macro :
Sheets("1er ticket en cours").Select
Set Controle1erNumero = Range("D2")
...

- Pour chaque billet, il y a plusieurs tirages possibles. Les dates sont inscrites dans une colonne. Pour un tirage donné, je souhaite donc qu'il inscrive le résultat dans la bonne case. Il s'agit d'une case de la colonne B, mais la ligne change à chaque fois. J'ai donc créé une InputBox où il demande le numéro de la ligne où il doit inscrire le résultat. La valeur entrée est stockée dans une variable définie comme Integer. Mon problème est qu'au moment d'inscrire le résultat, je ne sais pas comment lui indiquer qu'il doit le mettre dans la case B- Ligne.

Ligne = InputBox("Indiquer le numéro de la ligne où indiquer le nombre
de numéros corrects", "Ligne")

- Finalement, pour chaque numéro du ticket il compare le chiffre avec tous ceux du tirage. Si les chiffres coincident il donne la valeur 1, sinon 0. A la fin, je lui fais sommer tout le tableau pour connaitre le résultat.

' Controle du 1er numéro choisi
If Controle1erNumero > Tirage1erNumero Or Controle1erNumero <
Tirage1erNumero Then
Range("D4") = "0"
Else: Range("D4") = "1"
End If
If Controle1erNumero > Tirage2emeNumero Or Controle1erNumero <
Tirage2emeNumero Then
Range("D5") = "0"
Else: Range("D5") = "1"
End If
...

'Calcul du nombre de bons numéros

Bonsnumeros = "=SUM(R[-12]C:R[-8]C[6])"
'A noter toutes les variables sont définies comme Integer

Cette manière de faire fonctionne bien lorsqu'après je lui demande d'inscrire la variable Bonsnumeros dans une cellule. Par contre, lorsqu'il doit me l'indiquer dans une MsgBox, ça ne marche pas :
' Annonce des résultats dans une boite de dialogue
MsgBox "Nombre de bons numéros :" & Bonsnumeros, 0, "Résultats"

Il inscrit dans la MsgBox "=SUM(R[-12]C:R[-8]C[6])"

Merci pour vos conseils.

Fab 117

2 réponses

pinje Messages postés 129 Date d'inscription vendredi 25 juillet 2003 Statut Membre Dernière intervention 24 août 2006
11 août 2003 à 21:13
Essaye ca:

'Met la valeur de la Cellule dans ta Variable
Bonsnumeros = Sheets("Sheet1").Cells(1, 1).Value

n = MsgBox("Nombre de bons numéros :" & Bonsnumeros , vbInformation, "")

En gros laisse VBA declarer Bonsnumeros as Variant
0
Pom825 Messages postés 5 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 21 octobre 2003
21 oct. 2003 à 07:26
Bonjour,

je souhaite recuperer le nombre de lignes de la feuille courante en macro excel,

Merci,

Manu
0
Rejoignez-nous