[VBA] Pas dur pour vous a mon avis !

Résolu
sgt88sgt Messages postés 5 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 30 mars 2007 - 30 mars 2007 à 13:36
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 30 mars 2007 à 23:09
Bonjour,

j'aurais besoin de votre aide ! A mon avis c'est pas dur mais je suis pas developpeur !

Voila :

Feuil1 :

un tableau (nom : tabutil) de plusieurs colonnes (planning en fait) avec des listbox contenant les noms de personnes contenuent dans la feuil2

Feuil2 :

liste de noms (exemple : A1: joseph en B1 : robert, c1 : josephine, etc.)

Ce que je voudrais :

Un bouton, on clic dessus et a se moment la il y ai une verification, et que si un nom apparait plus de 3 fois dans planings, un message apparaisse en bas du tableau disant : attention les utilisateurs suivant sont presents plus de 3 fois dans semaine :  et la liste des personnes presentent plus de 3 fois qui apparait

J'espere avoir ete clair, merci d'avance, mon cerveau chauffe trop on est vendredi en plus ! lol !

10 réponses

jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
30 mars 2007 à 13:48
Bonjour et bienvenue,


 


On aimerait vraiment voir le code que tu as commencé à écrire à cette fin, pour y voir ce qu'il contient de si beau qu'il a réussi à faire chauffer à ce point ton cerveau...


Ce serait bien !
3
sgt88sgt Messages postés 5 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 14:02
oh non vous allez vous moquez ! lol !

Moi je crée plus scripts pour serveur linux, batch pour windows ou des ptites conneries ! Meme si c'est pas gros truc ca je galere ! lol !

Private Sub cmd_verif_Click()
Dim presence As Integer 'nombre de fois ou l'utilisateur est present
Dim util As String ' nom de l'utilisateur



For i 1 To i 6 ' Boucle avec i de 1 à nb d'utilisateurs



util = Worksheets(2).Range("A" & i).Value ' la variable util prend le nom de l'utilisateur



presence.Value = 0 ' initialisation de la valeur



    For r = 3 To 12 ' boulce de 3 a nb utilisateurs maximum par jour + 3
       
        If Worksheets(1).Range("B" & r).Value = util Then ' verif de la colonne B +1 a la variable si l utilisateur est present
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("C" & r).Value = util Then
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("D" & r).Value = util Then
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("E" & r).Value = util Then
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("F" & r).Value = util Then
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("G" & r).Value = util Then
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("H" & r).Value = util Then
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("I" & r).Value = util Then
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("J" & r).Value = util Then
        presence = presence + 1
        End If
       
        If Worksheets(1).Range("K" & r).Value = util Then
        presence = presence + 1
        End If
       



    Next r



If presence.Value > 3 Then



Range("B" & 19 + i).Value = util



End If





Next i





End Sub
3
sgt88sgt Messages postés 5 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 14:05
quand je clic sur le bouton pour lancer le truc ca me dit que ca : presence.Value = 0 ' initialisation de la valeur

presence c'est un qualificateur incorrect !
3
drikce06 Messages postés 2236 Date d'inscription lundi 29 mai 2006 Statut Membre Dernière intervention 29 mai 2008 10
30 mars 2007 à 14:15
Salut, presence = 0 tout court suffit value est une méthode appliquer à un objet et presence est une variable à laquelle tu assigne une valeur pour l'initialiser.
Par contre range est objet de type range (plage de valeur) de la classe worksheet, donc là tu peux appliquer la méthode .Value.

 Drikce 06

Si la réponse vous convient: Réponse acceptée. Si la réponse vous convient pas:
3

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
30 mars 2007 à 14:16
Bon...
Personne ne se moquera, mais beaucoup t'inciteront à apprendre l'essentiel

Quand tu écris sous VBA ou sous VB
presence.Value
tu ne peux te référer à une variable, sauf s'il s'agit d'une structure !

Tu as déclaré : Dim presence As Integer  qui est une variable de type entier.
Si tu tiens à l'initialiser à 0, ce devrait donc être : presence = 0

déjà...
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
30 mars 2007 à 14:19
La première chose :
Dim presence As Integer 'nombre de fois ou l'utilisateur est present
presence.Value = 0 ' initialisation de la valeur

presence est une variable, tu n'as donc pas de propriété .value
Pour l'initialiser, il te suffit de faire :
presence = 0

Deuxième point :
A priori, ton code compte le nb de fois où un utilisateur est présent dans un tableau B3:K12
Pas forcément beosin de code pour ça, une simple formule Excel dans une cellule te donnera la même info en temps réel :
=NB.Si(B3:K12;"Joseph")
Cette formule te donnera le nb de fois que Joseph apparait dans ton tableau.
Tu peux donc facilement appliquer ceci pour avoir le nb d'occurrence de tous tes utilisateurs.

Molenn
3
sgt88sgt Messages postés 5 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 14:23
ok ! Merci !

Je vais essayé ca !

Apprendre essentiel c'est pas que je veux pas mais VBA j'utiliserai plus !

Je connais algorithmie, je connais le html et le Javascript ! Perl !

Le reste non, et g pas plus envie que ca de devenir "expert" en VBA ! En tout cas merci bcp pour cet rapidite !

Je vais faire ca simple avec la formule Excel alors ! Mais j'aurais voulu en fait qu'il affiche seulement ceux qui apparaisent plus de 3 fois dans tableau ! Donc je vais faire une formule imbriquée !

Merci encore !
3
Molenn Messages postés 797 Date d'inscription mardi 7 juin 2005 Statut Membre Dernière intervention 23 février 2011 7
30 mars 2007 à 14:25
Toujours avec une formule Excel, si tu veux seulement faire apparaître ceux qui sont plus de 3 fois dans le tableau, il te suffit de rajouter une formule SI ^^

Ex. : =SI(NB.Si(B3:K12;"Joseph")>3;"Joseph";"")

Après, à toi d'adapter en fonction de tes besoins.

Molenn
3
sgt88sgt Messages postés 5 Date d'inscription vendredi 30 mars 2007 Statut Membre Dernière intervention 30 mars 2007
30 mars 2007 à 14:29
Merci mais ca c'etais fait je suis nul en VBA mais formules quand meme !  !

Merci a tous !
0
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
30 mars 2007 à 23:09
J'aimerais savoir à quoi servent les Listbox ?
Tu dis qu'il y a des listbox dans la feuille qui contiennent des noms mais tu fais ta vérification sur le texte des cellules ... je pense que quelque chose m'échappe (?)

MPi
0
Rejoignez-nous