Création de macro

nico.sibille

XLDnaute Junior
Bonjour, j'ai déjà fait appel à vos services mais ayant dû modifier des choses sur ma feuille, les macros forcément ne correspondent plus à ce queje veux.
J'ai voulu essayer de modifier certaines choses... mais j'avou je suis pas au top :(

En fait quand je double clique sur C5 je veux un résultat aléatoire en D5 compris entre 1 et C5 . Là pas de problème, la cellule n'a pas changé donc j'ai bien ce que je veux.

Mais je voudrais la même chose en C6, C9, C10...F5, F6...I5, I6...L5, L6...O5, O6... toutes les cellules en fond noir.

Merci.
 

Pièces jointes

  • Feuille de Match.xlsm
    39.5 KB · Affichages: 42
  • Feuille de Match.xlsm
    39.5 KB · Affichages: 38
  • Feuille de Match.xlsm
    39.5 KB · Affichages: 38

Paritec

XLDnaute Barbatruc
Re : Création de macro

Bonjour Nico le forum,
je viens d'ouvrir ton classeur mais comme tu n'as mis aucune indication il faut donc deviner ce qui devrait être en C5 et là moi j'ai pas compris.
Alors si au moins tu expliquais ce que tu devrais obtenir en C5 et C6 etc, ce serait plus simple pour t'aider
a+
Papou
 

nico.sibille

XLDnaute Junior
Re : Création de macro

Bonjour Nico le forum,
je viens d'ouvrir ton classeur mais comme tu n'as mis aucune indication il faut donc deviner ce qui devrait être en C5 et là moi j'ai pas compris.
Alors si au moins tu expliquais ce que tu devrais obtenir en C5 et C6 etc, ce serait plus simple pour t'aider
a+
Papou

En c5, c6 ... j'aurai un nombre aléatoire compris entre 1 et 100 que je rentrerai moi même. et en d5 je souhaiterai avoir lorsque je double clique sur c5 un nombre aléatoire compris entre 1 et c5 .

voici une fiche avec un exemple: en C5 j'ai saisi 62, quand je double clique sur C5 j'obtiens un nombre aléatoire compris entre 1 et 62 (C5) .

Moi je voudrais le même principe dans toutes les cases que j'ai noircie. Mais quand je rentre pour modifier le macro... :confused: je comprend pas grand chose !

J'éspère être plus clair à présent.
 

Pièces jointes

  • Feuille de Match.xlsm
    39.1 KB · Affichages: 34
  • Feuille de Match.xlsm
    39.1 KB · Affichages: 44
  • Feuille de Match.xlsm
    39.1 KB · Affichages: 41

Paritec

XLDnaute Barbatruc
Re : Création de macro

re nico , le forum,
bah un peu plus clair mais pas beaucoup!!!
envoi moi le fichier avant que tu le modifies, celui qui marchait et je vais regarder cela car tes explications sont peut être claire pour toi qui connait ton problème mais pour moi pas vraiment.
a+
Papou
 

JNP

XLDnaute Barbatruc
Re : Création de macro

Bonjour Nico.Sibille, Paritec :),
Voici le code corrigé (si j'ai bien compris)
Code:
Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column > 16 Or Target.Row > 40 Then Exit Sub
Dim Li As Byte, Col As Byte
Randomize
Li = Target.Row
If Li Mod 4 = 1 Then
    Col = Target.Column
    If Col Mod 3 = 0 Then
        If Target <> "" Then Cells(Li, Col + 1) = Int(Cells(Li, Col) * Rnd + 1)
    End If
End If
Cancel = True
End Sub
J'utilise Mod qui renvoie le reste de la division pour savoir si je suis dans la bonne colonne et la bonne ligne.
Par contre, j'ai pas compris l'utilité de C6 :confused:.
Bon WE :cool:
 

nico.sibille

XLDnaute Junior
Re : Création de macro

non, ca n'a pas l'air de fonctionner...

ce fichier est le même qu'avant mais corrigé.
avant il n'y avait que la ligne 5 et rien ensuite.
c'est pour ça que celle ci fonctionne: je double clique sur c5: j'ai mon résultat en d5; je double clique sur F5 j'ai mon résultat en g5; idem en I5 pour j5 .

Je voudrais un macro identique à celui-ci pour chaque case noire. exemple en C9 je rentre un nombre, je double clique dessus et en d9 j'obtiens un résultat compris entre 1 et c9 .
 

Pièces jointes

  • Feuille de Match.xlsm
    38.9 KB · Affichages: 46
  • Feuille de Match.xlsm
    38.9 KB · Affichages: 45
  • Feuille de Match.xlsm
    38.9 KB · Affichages: 48

JNP

XLDnaute Barbatruc
Re : Création de macro

Re :),
C'est bien ce que j'avais dit, je ne suivais pas pour C6. Donc, pour que toutes les cases noires fonctionnent, il faut modifier
Code:
If Li Mod 4 = 1 [B][COLOR=red]Or Li Mod 4 = 2[/COLOR][/B] Then
pour que les 2 lignes fonctionnent, et non uniquement la première. Par contre, il y a un problème de logique, tu souhaites avoir un nombre entre 1 et C5, mais quand C5 = 0, tu sort du cadre et tu obtiens 1...
Bon WE :cool:
 

nico.sibille

XLDnaute Junior
Re : Création de macro

Désolé, c'est encore moi mais j'ai eu besoin de rallonger mon tableau et du coup en voulant retourner à nouveau... modifier le macro, je ne vois pas de repère de cellule et ne comprend donc toujours pas... (désolé) comment faire la mêm hose sur toutes les cellules qui suivent.

Pour ceux qui n'ont pas suivi ci dessus, j'ai besoin en double cliquant sur c5, d'avoir en d5 un résultat compris entre C5 et 100.
En c6 , c9, c10, c13, c14 ... c165, c166 d'avoir un résultat compris entre c6 , c9, c10, c13, c14 ... c165, c166 et 100.

Merci.
 

Pièces jointes

  • Feuille de Match.xlsm
    46.3 KB · Affichages: 49
  • Feuille de Match.xlsm
    46.3 KB · Affichages: 44
  • Feuille de Match.xlsm
    46.3 KB · Affichages: 48

JNP

XLDnaute Barbatruc
Re : Création de macro

Bonsoir le forum :),
Ne le prends pas mal, mais, je serais toi, j'arrêterais de fumer la moquette, ça ne te vaux rien :D!
D'après mes tests, ton nouveau fichier fonctionne tel que tu l'avais demandé, c'est-à-dire que le double-clic en C5 (C6, C9,C10, C13,C14,...,F5, F6, F9, F10,...) donne dans la cellule immédiatement à droite un aléatoire entre 1 et la valeur de la cellule de ton double-clic, seule la valeur extrème de ligne est à passer en 52 :confused:...
Maintenant, vu la taille de ton tableau, il me paraitrait plus avisé d'utiliser l'évènement Change plutôt que Double_Click
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 16 Or Target.Row > [B][COLOR=red]52[/COLOR][/B] Then Exit Sub
Dim Li As Byte, Col As Byte
Randomize
Li = Target.Row
If Li Mod 4 = 1 Or Li Mod 4 = 2 Then
    Col = Target.Column
    If Col Mod 3 = 0 Then
        If Target <> "" Then Cells(Li, Col + 1) = Int(Cells(Li, Col) * Rnd + 1)
    End If
End If
End Sub
Enfin, si finalement, c'est une valeur entre C5 et 100 et non 1 et C5 qui t'intéresse, il va falloir revoir la génération de l'aléatoire.
Bonne nuit :cool:
 

nico.sibille

XLDnaute Junior
Re : Création de macro

Excuse moi mais je viens de réessayer, ca marche jusqu'à C37 et C38 mais après à partir de C41 jusqu'à C166 , ça ne marche pas. Quand je duble cique, il ne m'apparaît rien en D41.

Et pardon, je me suis mal exprimé, ce n'est pas une valeur entre C5 et 100 mais bien 1 et C5 pour limite !
 

nico.sibille

XLDnaute Junior
Re : Création de macro

Ah mais si, je suis trop nul... oh la la !
En fait, ce n'était pas 52 mais 168... la fin de mon tableau, ca y est j'ai pigé !
Merci beaucoup, une dernière faveur...?

Est ce que cela est possible en appuyant sur un bouton que je créerai d'effacer d'un seul coup certaines cellules ?
Cela m'éviterai de sortir sans enregistrer et réouvrir le fichier...
Merci.
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 493
Messages
2 088 956
Membres
103 990
dernier inscrit
lamiadebz