IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Programmation VBA par un débutant.


Sujet :

Macros et VBA Excel

  1. #1
    Membre à l'essai
    Homme Profil pro
    Technicien amélioration Continue
    Inscrit en
    Septembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien amélioration Continue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 32
    Points : 12
    Points
    12
    Par défaut Programmation VBA par un débutant.
    Bonjour,

    Actuellement entrain de développer un programme VBA sur Excel pour la gestion de notre cantine, je rencontre quelques problèmessur la fonctionnalité des mes Userform.
    En pièce jointe mon fichier à l'état de travail.
    Je m'explique sur le fonctionnement, le programme servira pour la préparation de nos plateaux repas.
    Pour ce faire chauqe personne devra saisir les informations contenus dans les formulaires par période de 4 semaines donc 4 userform.
    Mon problème est que je n'arrive pas à lié certains évenements.
    En prenant l'exemple de mon Userform2, toutes les données saisies sont rapatriées dans la feuille "DONNEES". Dans cette userform nous avons checkbox et des optionbuttons.
    Je voudrais que lorsque mon checkbox1 "ABSENT" est coché tout les optionbuttons contenu dans la frame soit de valeurs nulles lors du rapratiments dans la feuille "Données".
    D'autre part lorsque un personne à déja saisie son menu, il ne puisse pas en recréer un pour la même semaine, j'essais de mettre en relation la valeur combobox1 et label2 en relation avec les colonnes A et B de la feuille "données" et de lui mettre un message comme "MENU DEJA FAIT".
    D'autre part quand les chekbox9à13 sont cochés, je voudrais avoir le texte inscrit dans ma cellule où celui ci est rapatrié.
    J'éspère être clair dans mes explications.

    Je précise que je suis un débutant et que le code déjà écrit, est réalisé avec les quelques connaissances que j'ai.

    Merci d'avance aux personnes qui pourraient me consacrer de leur temps.

  2. #2
    Membre expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 869
    Points : 3 442
    Points
    3 442
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    voici 2 tutos qui peuvent t'intéresser


    http://silkyroad.developpez.com/VBA/UserForm/

    http://silkyroad.developpez.com/VBA/ControlesUserForm/


    Fais attention pas de pièce jointe sur le premier Post peu de gens les ouvrent

    http://www.developpez.net/forums/d32...l-lire-poster/

    Bonne journée

    A+
    Ils ne savaient pas que c'était impossible ... du coup ils l'ont fait (Mark Twain)

    n'oubliez pas de si les messages vous aide ou sont pertinents et de mettre quand cela est !

  3. #3
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Une constatation (ce n'est pas une critique, juste une constatation) que j'ai fait sur les débutants utilisant des UserForm c'est que, dans la majorité des cas, le recours à un UserForm est inutile. Plus exactement, ça complique énormément l'application sans apporter une réelle plus-value.

    La première question à se poser est donc de prendre un peu de recul sur ton projet et de te demander si le UserForm est réellement utile.
    Excel, en natif, possède déjà beaucoup d'outils facilitant la saisie (fonctions, listes déroulantes, validation de données, format de cellules, mise en forme conditionnelle, etc.).
    La saisie directe dans la feuille de données n'est-elle pas suffisante ?

    Je ne dis pas que ce soit le cas pour toi mais la question vaut bien qu'on prenne le temps que tu te la poses au regard de la simplification que ça peut apporter.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Technicien amélioration Continue
    Inscrit en
    Septembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien amélioration Continue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Pour Menhir,

    Merci de t'interesser à mon sujet.
    Pourquoi l'userform, car j'ai deja par le passé mis en place un système avec le l'userform et cela plait beaucoup à ma direction qui souhaite utiliser se principe.
    D'autre part nous allons utiliser ce programme sur des bornes informatiques avec écran tactile et dans ce cas cela est plus simple pour la visualisation.

    Certe avec de la saisie directement dans les feuilles serait plus simple mais cela ne correpsond pas à la demande.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    if check1=true then
    check2=false
    check3=false

  6. #6
    Membre à l'essai
    Homme Profil pro
    Technicien amélioration Continue
    Inscrit en
    Septembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien amélioration Continue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    bonjour rdurupt,

    Peux tu m'expliquer le code que tu m'a donné.

  7. #7
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    J'ai juste expliquer que tu peux tester un check box et modifier la valeur d'autres composants.

    Vu que je n'ai pas accès aux pièces jointes difficile de voir le code

  8. #8
    Membre extrêmement actif
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 82
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Points : 12 422
    Points
    12 422
    Par défaut
    Bonjour
    - Les explications données ne me permettent pas de savoir avec assurance ce dont il s'agit. Surtout sans voir le code (qui devrait être présenté ici, entre balises code)
    -
    Je voudrais que lorsque mon checkbox1 "ABSENT" est coché tout les optionbuttons contenu dans la frame soit de valeurs nulles lors du rapratiments dans la feuille "Données".
    D'autre part lorsque un personne à déja saisie son menu, il ne puisse pas en recréer un pour la même semaine,
    Constitue la demande d'aide concernant DEUX difficultés complètement distinctes dans cette discussion. Quelle est la demande prioritaire ?
    Je n'accepte pas de demande d' "amitié" individuelle. Tout développeur est pour moi un ami.
    Je n'ouvre AUCUN classeur tiers (avec ou sans macro ******). Ne m'en proposez donc pas .

    ****** : Non, non ... un classeur .xlsx ne "peut" par exemple et entre autres pas contenir un activex (de surcroît invisible) , "bien sûr" ...

    Il est illusoire de penser que l'on saurait exprimer valablement et précisément en un langage (rigide) de développement ce que l'on peine à exprimer dans le langage naturel, bien plus souple.

  9. #9
    Invité
    Invité(e)
    Par défaut
    Et puis si tu rajoute un option bouton visible=false (valeur par défaut true) dans ta frame il te suffit d'un. Lui donne par programme la valeur True pour désélectionner le autres!

  10. #10
    Membre à l'essai
    Homme Profil pro
    Technicien amélioration Continue
    Inscrit en
    Septembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien amélioration Continue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Voici mon code écrit pour le moment.
    En pièce jointe une copie d'écran de mon userform afin de comprendre un peu mieux mon problème.

    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    Private Sub CommandButton1_Click()
    Dim Dcel As Range 'variable qui ira chercher la 1ère cellule vide
    Dim i As Integer, verif As Byte
    verif = 0
    For i = 1 To 3
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
      Next i
    For i = 4 To 5
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 6 To 7
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 8 To 9
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
     
    For i = 10 To 12
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
      Next i
    For i = 13 To 14
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 15 To 16
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 17 To 18
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
     
    For i = 19 To 21
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
      Next i
    For i = 22 To 23
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 24 To 25
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 26 To 27
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
     
    For i = 28 To 30
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
      Next i
    For i = 31 To 32
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 33 To 34
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 35 To 36
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
     
    For i = 37 To 39
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
      Next i
    For i = 40 To 41
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 42 To 43
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    For i = 44 To 45
     If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
     
    If ComboBox1 <> "" Then verif = verif + 1
     
    If verif <> 21 Then MsgBox "Vérifier vos saisies": Exit Sub
     
    With Sheets("DONNEES")
      Set Dcel = .Range("A" & .Rows.Count).End(xlUp)(2, 1)
    End With
    Dcel(1, 1) = Label2: Dcel(1, 2) = ComboBox1: Dcel(1, 3) = CheckBox9.Value: Dcel(1, 4) = CheckBox4.Value: Dcel(1, 5) = Frame1.Caption:
    Dcel(2, 1) = Label2: Dcel(2, 2) = ComboBox1: Dcel(2, 3) = CheckBox10.Value: Dcel(2, 4) = CheckBox4.Value: Dcel(2, 5) = Frame2.Caption:
    Dcel(3, 1) = Label2: Dcel(3, 2) = ComboBox1: Dcel(3, 3) = CheckBox11.Value: Dcel(3, 4) = CheckBox4.Value: Dcel(3, 5) = Frame3.Caption:
    Dcel(4, 1) = Label2: Dcel(4, 2) = ComboBox1: Dcel(4, 3) = CheckBox12.Value: Dcel(4, 4) = CheckBox4.Value: Dcel(4, 5) = Frame4.Caption:
    Dcel(5, 1) = Label2: Dcel(5, 2) = ComboBox1: Dcel(5, 3) = CheckBox13.Value: Dcel(5, 4) = CheckBox4.Value: Dcel(5, 5) = Frame5.Caption
     
    For i = 1 To 3
      If Me.Controls("OptionButton" & i) Then Dcel(1, 6) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 4 To 5
      If Me.Controls("OptionButton" & i) Then Dcel(1, 7) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 6 To 7
      If Me.Controls("OptionButton" & i) Then Dcel(1, 8) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 8 To 9
      If Me.Controls("OptionButton" & i) Then Dcel(1, 9) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 10 To 12
      If Me.Controls("OptionButton" & i) Then Dcel(2, 6) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 13 To 14
      If Me.Controls("OptionButton" & i) Then Dcel(2, 7) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 15 To 16
      If Me.Controls("OptionButton" & i) Then Dcel(2, 8) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 17 To 18
      If Me.Controls("OptionButton" & i) Then Dcel(2, 9) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 19 To 21
      If Me.Controls("OptionButton" & i) Then Dcel(3, 6) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 22 To 23
      If Me.Controls("OptionButton" & i) Then Dcel(3, 7) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 24 To 25
      If Me.Controls("OptionButton" & i) Then Dcel(3, 8) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 26 To 27
      If Me.Controls("OptionButton" & i) Then Dcel(3, 9) = Me.Controls("OptionButton" & i).Caption: Exit For
     
    Next i
     
    For i = 28 To 30
      If Me.Controls("OptionButton" & i) Then Dcel(4, 6) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 31 To 32
      If Me.Controls("OptionButton" & i) Then Dcel(4, 7) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 33 To 34
      If Me.Controls("OptionButton" & i) Then Dcel(4, 8) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 35 To 36
      If Me.Controls("OptionButton" & i) Then Dcel(4, 9) = Me.Controls("OptionButton" & i).Caption: Exit For
     
    Next i
     
    For i = 37 To 39
      If Me.Controls("OptionButton" & i) Then Dcel(5, 6) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 40 To 41
      If Me.Controls("OptionButton" & i) Then Dcel(5, 7) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 42 To 43
      If Me.Controls("OptionButton" & i) Then Dcel(5, 8) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
     
    For i = 44 To 45
      If Me.Controls("OptionButton" & i) Then Dcel(5, 9) = Me.Controls("OptionButton" & i).Caption: Exit For
     
    Next i
    End Sub

  11. #11
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Tu devrais déclarer la variable verif comme Integer et non Byte vue qu'elle n'est pas utiliser pour traiter du code hexa.

    Je ne comprends pas pourquoi tu as fait une ribambelle de For To au lieu d'écrire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 45
      If Me.Controls("OptionButton" & i) Then verif = verif + 1
    Next i
    Par contre, par la suite, une boucle aurait été bien pour :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    For i=1 To 5
        Dcel(i, 1) = Label2
        Dcel(i, 2) = ComboBox1
        Dcel(i, 3) = CheckBox9.Value
        Dcel(i, 4) = CheckBox4.Value
        Dcel(i, 5) = Frame1.Caption
    Next i
    Je te déconseille aussi d'abuser des ":" pour multiplier les instructions sur une même ligne. Ca rend le code moins lisible.
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  12. #12
    Invité
    Invité(e)
    Par défaut
    comme je trouvais ton code compliqué a lire j'ai joué du cuter!
    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
    Private Sub CommandButton1_Click()
    Dim Dcel As Range 'variable qui ira chercher la 1ère cellule vide
    Dim i As Integer, verif As Byte
    verif = 0
    verif = 0
    For i = 1 To 45
        verif = verif + Me.Controls("OptionButton" & i)
    Next i
     verif = Abs(verif)
     
    If ComboBox1 <> "" Then verif = verif + 1
     
    If verif <> 21 Then MsgBox "Vérifier vos saisies": Exit Sub
     
    With Sheets("DONNEES")
      Set Dcel = .Range("A" & .Rows.Count).End(xlUp)(2, 1)
    End With
    Dcel(1, 1) = Label2: Dcel(1, 2) = ComboBox1: Dcel(1, 3) = CheckBox9.Value: Dcel(1, 4) = CheckBox4.Value: Dcel(1, 5) = Frame1.Caption:
    Dcel(2, 1) = Label2: Dcel(2, 2) = ComboBox1: Dcel(2, 3) = CheckBox10.Value: Dcel(2, 4) = CheckBox4.Value: Dcel(2, 5) = Frame2.Caption:
    Dcel(3, 1) = Label2: Dcel(3, 2) = ComboBox1: Dcel(3, 3) = CheckBox11.Value: Dcel(3, 4) = CheckBox4.Value: Dcel(3, 5) = Frame3.Caption:
    Dcel(4, 1) = Label2: Dcel(4, 2) = ComboBox1: Dcel(4, 3) = CheckBox12.Value: Dcel(4, 4) = CheckBox4.Value: Dcel(4, 5) = Frame4.Caption:
    Dcel(5, 1) = Label2: Dcel(5, 2) = ComboBox1: Dcel(5, 3) = CheckBox13.Value: Dcel(5, 4) = CheckBox4.Value: Dcel(5, 5) = Frame5.Caption
     
    Dim ic As Boolean
    For i = 1 To 45
       Select Case i
                Case 1: x = 1: Y = 6: ic = False
                Case 10 To 11: x = 2: Y = 6: ic = False
                Case 19 To 20: x = 3: Y = 6: ic = False
                Case 35: x = 4: Y = 6: ic = False
                Case 30 To 36
                   If ic = True Then Y = Y + 1: ic = False
                   If i Mod 2 = 0 Then ic = True
                Case 37: x = 5: Y = 6: ic = False
                Case Else
                    If ic = True Then Y = Y + 1: ic = False
                    If (i - 1) Mod 2 = 0 Then ic = True
       End Select
       If Me.Controls("OptionButton" & i) Then Dcel(x, Y) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
    End Sub
    Edit par contre le exit for n'a lus de reson d'être!
    Dernière modification par Invité ; 15/09/2016 à 11h34.

  13. #13
    Membre à l'essai
    Homme Profil pro
    Technicien amélioration Continue
    Inscrit en
    Septembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien amélioration Continue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Merci pour la "taille au cuter".
    Je suis débutant donc c'est vrai que je me complique certainement avec mes quelques connaissances, heureusement que des personnes expérimentées sont là pour m'aider.

    Par contre j'ai mis en place le code et je me retrouve avec un message d'erreur (cf. copie d'écran).

  14. #14
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim i As Integer, verif As ineger
    Dernière modification par AlainTech ; 18/09/2016 à 21h14. Motif: Suppression de la citation inutile

  15. #15
    Expert éminent sénior Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Points : 32 866
    Points
    32 866
    Par défaut
    Citation Envoyé par xoff60 Voir le message
    Par contre j'ai mis en place le code et je me retrouve avec un message d'erreur (cf. copie d'écran).
    La réponse est dans la première ligne de mon message précédent (#12).
    Parfois, on a un peu l'impression que poster des réponses est du temps perdu...
    Merci de cliquer sur pour chaque message ayant aidé puis sur pour clore cette discussion.

  16. #16
    Membre à l'essai
    Homme Profil pro
    Technicien amélioration Continue
    Inscrit en
    Septembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien amélioration Continue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Merci cela fonctionne maintenant.

    donc si je comprend bien concernant le checkbox "ABSENT", tu me conseilles donc de le remplacer par un optionbutton afin de désactiver les autres optionbuttons de la frame.

    Citation Envoyé par Menhir Voir le message
    La réponse est dans la première ligne de mon message précédent (#12).
    Parfois, on a un peu l'impression que poster des réponses est du temps perdu...
    Désolé Menhir, je n'avais vu cette partie de ta réponse...
    Et pour moi j'essai de comprendre au mieu vos explications donc je passe parfois à coté de certaine chose.

    Je serai plus vigilant la prochaine fois.

  17. #17
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par xoff60 Voir le message
    Merci cela fonctionne maintenant.

    donc si je comprend bien concernant le checkbox "ABSENT", tu me conseilles donc de le remplacer par un optionbutton afin de désactiver les autres optionbuttons de la frame.
    non ça c'était avant (mes lunette) que je revois ton code ça vas décalé tous mes select caise on va te proposer une solution!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    For i = 1 To 45
    Me.Controls("OptionButton" & i).Value = False
    Next

  18. #18
    Membre à l'essai
    Homme Profil pro
    Technicien amélioration Continue
    Inscrit en
    Septembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien amélioration Continue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    La partie taillée au cuter pour le rapratiement des données ne fonctionne pas.
    Je ne récupérèe que la première valeur optionbuttons1 à 3.
    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
    Dim ic As Boolean
    For i = 1 To 45
       Select Case i
                Case 1: x = 1: Y = 6: ic = False
                Case 10 To 11: x = 2: Y = 6: ic = False
                Case 19 To 20: x = 3: Y = 6: ic = False
                Case 35: x = 4: Y = 6: ic = False
                Case 30 To 36
                   If ic = True Then Y = Y + 1: ic = False
                   If i Mod 2 = 0 Then ic = True
                Case 37: x = 5: Y = 6: ic = False
                Case Else
                    If ic = True Then Y = Y + 1: ic = False
                    If (i - 1) Mod 2 = 0 Then ic = True
       End Select
       If Me.Controls("OptionButton" & i) Then Dcel(x, Y) = Me.Controls("OptionButton" & i).Caption: Exit For
    Next i
    le fichierPièce jointe 220355

  19. #19
    Invité
    Invité(e)
    Par défaut
    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
    Dim ic As Boolean
    For i = 1 To 45
       Select Case i
                Case 1: x = 1: Y = 6: ic = False
                Case 10 To 11: x = 2: Y = 6: ic = False
                Case 19 To 20: x = 3: Y = 6: ic = False
                Case 35: x = 4: Y = 6: ic = False
                Case 30 To 36
                   If ic = True Then Y = Y + 1: ic = False
                   If i Mod 2 = 0 Then ic = True
                Case 37: x = 5: Y = 6: ic = False
                Case Else
                    If ic = True Then Y = Y + 1: ic = False
                    If (i - 1) Mod 2 = 0 Then ic = True
       End Select
       If Me.Controls("OptionButton" & i) Then Dcel(x, Y) = Me.Controls("OptionButton" & i).Caption
    Next i

  20. #20
    Membre à l'essai
    Homme Profil pro
    Technicien amélioration Continue
    Inscrit en
    Septembre 2014
    Messages
    32
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Technicien amélioration Continue
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2014
    Messages : 32
    Points : 12
    Points
    12
    Par défaut
    Je me retrouve en décallé dans l'importation de mes données.

Discussions similaires

  1. La programmation vue par les débutants
    Par Mingolito dans le forum Humour Informatique
    Réponses: 3
    Dernier message: 18/03/2016, 19h02
  2. Fermer l'editeur VBA par programmation
    Par bossun dans le forum Général VBA
    Réponses: 1
    Dernier message: 15/02/2007, 14h14
  3. [Débutant] Critères de requete sur dates - Programmation VBA
    Par Sofie109 dans le forum Requêtes et SQL.
    Réponses: 9
    Dernier message: 11/01/2007, 15h35
  4. Accès outlook par programmation VBA depuis access
    Par STOUPI dans le forum Access
    Réponses: 1
    Dernier message: 05/06/2006, 18h22
  5. Gérer les évènements VBA par programmation
    Par gbuxo dans le forum VBA Access
    Réponses: 14
    Dernier message: 09/05/2006, 11h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo