Bonjour
J'ai créé un petit programme sous excel (fichier joint) mais je n'arrive pas à le faire fonctionner. Je tiens à préciser que je suis novice ce qui explique mes difficultés.
Quelqu'un peut-il m'apporter de l'aide?
Merci d'avance
Bonjour
J'ai créé un petit programme sous excel (fichier joint) mais je n'arrive pas à le faire fonctionner. Je tiens à préciser que je suis novice ce qui explique mes difficultés.
Quelqu'un peut-il m'apporter de l'aide?
Merci d'avance
Il est difficile de corriger un code si on ne sait pas ce qu'il veut faire.
J'ai tout de même jeté un coup d'oeil.
J'ai modifié deux trois truc et fait quelques remarques. Si tu veux vraiment une aide efficace explique mieux ton problème, ce que tu veux faire, quelle ligne te pose problème...
Je pense que tu devrais remplacer ton bouton sur la feuille par un controle activeX c'est plus maniable
Voici le code dans Userform3:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58 Private Sub CommandButton1_Click() Dim j As Long, k As Long ', Oui As Long 'Avec ce que tu faisait, seul Oui était défini comme Long, le reste en Variant Dim Datee As String Dim Oui As Boolean 'pour un vrai faux c'est mieux comme ça 'Cells(1, "B").FormulaR1C1 = "=COUNTBLANK(C)" 'j = Cells(1, "B").Value 'Cells(1, "B") = "" 'Un exemple pour utiliser une formule excel en macro: j = WorksheetFunction.CountBlank(Columns(3)) 'j = 65536 - j + 9 'La partie du dessus est inutile, si tu veux trouver la dernière ligne utilisée d'une colonne fait: j = Range("C65536").End(xlUp).Row 'k = 11 Datee = TextBox1.Value & "/" & TextBox2.Value & "/" & TextBox3.Value Cells(1, "J") = TextBox4.Value Cells(2, "J") = TextBox5.Value Cells(3, "J") = TextBox6.Value Cells(4, "J") = TextBox7.Value 'While k < j 'Au lieu de While je préfère utiliser For For k = 11 To j Step 1 ' If Cells(k, "B") = Cells(1, "J") Then Oui = True ' If Cells(k, "B") = Cells(2, "J") Then Oui = True ' If Cells(k, "B") = Cells(3, "J") Then Oui = True ' If Cells(k, "B") = Cells(4, "J") Then Oui = True 'Je combinerai ces ligne comme ceci: If Cells(k, "B") = Cells(1, "J") Or Cells(k, "B") = Cells(2, "J") Or Cells(k, "B") = Cells(3, "J") Or Cells(k, "B") = Cells(4, "J") Then Oui = True If Oui = True Then Cells(k, "D") = Cells(k, "D") + 1 Cells(k, "F") = CDate(Datee) Cells(k, "H") = 0 Else Cells(k, "H") = Cells(k, "H") + 1 End If Oui = False Next k ' k = k + 1 'Wend 'Cells(11, "A") = Cells(11, "A") + 1 'Ici je mettrai directement la somme de la colonne D (je pense que c'est ce que tu veux) Cells(11, "A") = WorksheetFunction.Sum(Range("D11", "D" & Range("D65536").End(xlUp).Row)) 'Cells(1, "J") = "" 'Cells(2, "J") = "" 'Cells(3, "J") = "" 'Cells(4, "J") = "" 'Ici tu peux faire: Range("J1", "J4").Clear Unload UserForm3 End Sub
Un grand merci diude54
pour mieux comprendre je vais prendre un exemple.
Dans le userform je rentre 4 chiffres correspondant à la colonne noms si je rentre le chiffre 3, sur la ligne correspondant j'incrémente de 1 le nombre de partie gagnées, je mets la date à jour et je place un zéro dans la colonne écart et ce pour tous les chiffres du userform
Ensuite j'incremente de 1 toute la colonne ecart excepté les cases des chiffres précedemment rentrés, et je fais +1 en A11.
Voilà j'espère avoir été clair.
Encore merci
Voila un code qui fonctionne et je pense qu'il fait ce que tu souhaites.
Enlève les 2 dernières textbox pour la date, ne garde que la première et saisi dedans une date comme ceci:
16/09/2009
Pour faire un test, tu peux toutes les conserver et ecrire dans la premeire 16/09/2009, ça fonctionne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38 Private Sub CommandButton1_Click() Dim j As Long, k As Long Dim Datee As String Dim PlageNom As Range, Trouve As Range Dim PlageEcart As Range, C As Range Dim Nom As String j = Range("B65536").End(xlUp).Row Set PlageNom = Range("B11", "B" & j) Set PlageEcart = Range("H11", "H" & j) 'Si tu remplace les 3 textbox par une seule et fait comme ceci ça devrait fonctionner Datee = CDate(TextBox1.Value) '& "/" & TextBox2.Value & "/" & TextBox3.Value For Each C In PlageEcart ' on ajoute 1 à toutes les cellules de la colonne ecart C.Value = C.Value + 1 Next C For k = 4 To 7 Step 1 Nom = Me.Controls("Textbox" & k).Value Set Trouve = PlageNom.Find(Nom, LookIn:=xlValues, SearchOrder:=xlByColumns) ' on cherche le nom If Not Trouve Is Nothing Then Cells(Trouve.Row, "D") = Cells(Trouve.Row, "D") + 1 Cells(Trouve.Row, "F") = Datee Cells(Trouve.Row, "H") = 0 End If Next k Cells(11, "A") = WorksheetFunction.Sum(Range("D11", "D" & Range("D65536").End(xlUp).Row)) Unload UserForm3 End Sub
Bonjour,
A toutes fins utiles :
-si le code de Diude54 vous convient (et je pense même dans tous les cas) n'oubliez pas de supprimer toutes les lignes inutiles, dans votre exemple de la 24 à la 65 536 puis les colonnes inutiles de la K à Y puis d'enregistrer votre fichier pour que le changement soit pris en compte.
Dans l'état actuel, si vous deviez insérer une nouvelle ligne entre deux lignes existantes, cela serait refusé.
De plus cela fait que la taille est de 2,391 Mo, énorme, par rapport au contenu utile !!!!
Merci à tous les deux
tout fonctionne très bien mais je souhaite incrémenter de 1 dans la colonne nombre de parties gagnées et non mettre 1.
C'est ce que j'ai fait:
EDIT:
Code : Sélectionner tout - Visualiser dans une fenêtre à part C.Value=C.Value+1
Désolé, j'avais oublié un truc dans ma macro, je l'ai corrigé dans mon post précédent ça devrait mieux fonctionner
j'ai du faire une erreur il ne me lance plus le userform il me met erreur de chargement de dll
Un grand merci pour ton aide précieuse diude54 ainsi que jacques_jean
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager