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 :

Des difficultés à programmer le bouton MODIFIER [XL-2010]


Sujet :

Macros et VBA Excel

  1. #1
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut Des difficultés à programmer le bouton MODIFIER
    Bonjour,
    Je suis novice et je suis parvenue à créer un formulaire.
    Tout fonctionne comme je le souhaite à l'exception du bouton MODIFIER qui n'enregistre pas les modifications demandées.
    Quelqu'un pourrait il m'aider à résoudre cette difficulté ?
    Je vous en remercie par avance.

  2. #2
    Expert éminent 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
    Par défaut
    Ne sachant pas comment tu as constitué ce formulaire ni ce qu'il y a derrière ce bouton, il va être difficile de te renseigner.
    Il faudrait que tu apportes plus de précisions à ton problème.

  3. #3
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut
    Bonsoir Menhir
    Est il possible que je t'envoie un extrait de mon fichier ?
    Merci

  4. #4
    Expert éminent 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
    Par défaut
    Non, je ne suis pas service d'assistance personnel.
    Par contre, tu peux le mettre en pièce jointe dans ton message pour que chacun sur ce forum puisse s'y intéresser.
    Mais mettre un fichier en pièce jointe ne te dispense pas de décrire clairement ton problème, comme il est expliqué ici :
    http://www.developpez.net/forums/d84...s-discussions/

  5. #5
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut
    Je vais essayer d'expliquer mon problème
    J'ai créé un formulaire qui me permet de créer une fiche reprenant plusieurs informations d'une personne.
    Parfois il me faut apporter des modifications à la fiche d'une personne
    Donc dans mon formulaire, la création se passe très bien
    Mes menus déroulants, et tout ce qui doit tourner correctement, fonctionnent.
    Ma seule difficulté est le bouton MODIFIER que j'ai essayé de paramétrer de plusieurs façons différentes qui ne fonctionne pas.
    D'où ma demande.
    En voici la programmation (si c'est comme ça que l'on doit dire )
    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
          Private Sub CommandButton2_Click()
          Dim Ligne As Long
                Dim I As Integer
                If MsgBox("Confirmez-vous la modification de cet agent ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
                If Me.ComboBox1.ListIndex = -1 Then Exit Sub
                Ligne = Me.ComboBox1.ListIndex + 2
                I= sheet("ESSAI")
                             Range("A") = ComboBox4
                             Range("B") = ComboBox5
                             Range("C") = ComboBox6
                             Range("D") = ComboBox7
                             Range("E") = ComboBox8
                             Range("F") = TextBox4
                             Range("G") = ComboBox9
                             Range("H") = TextBox2
                             Range("I") = TextBox3
                             Range("J") = TextBox1
                             Range("K") = ComboBox10
                             Range("L") = ComboBox11
                             Range("M") = ComboBox1
                             Range("N") = ComboBox2
                             Range("O") = ComboBox3
                             Range("P") = TextBox5
                             Range("Q") = ComboBox12
                             Range("R") = ComboBox13
                             Range("S") = ComboBox14
                             Range("T") = ComboBox15
                             Range("U") = ComboBox16
                             Range("V") = ComboBox17
                             Range("W") = ComboBox18
                             Range("X") = ComboBox19
                             Range("Y") = ComboBox20
                             Range("Z") = ComboBox21
                             Range("AA") = ComboBox22
                             Range("AB") = ComboBox23
                             Range("AC") = ComboBox24
                             Range("AD") = ComboBox25
                             Range("AE") = TextBox6
                             Range("AF") = TextBox8
                             Range("AG") = TextBox7
                             Range("AH") = TextBox9
                             Range("AI") = TextBox11
                             Range("AJ") = TextBox10
                             Range("AK") = TextBox12
                             Range("AL") = TextBox13
                             Range("AM") = TextBox14
                             Range("AN") = TextBox15
                             Range("AO") = TextBox16
                             Range("AP") = TextBox17
                             Range("AQ") = TextBox18
                             Range("AR") = TextBox19
                             Range("AS") = TextBox20
                             Range("AT") = TextBox21
                             Range("AU") = TextBox22
                             Range("AV") = TextBox23
                             Range("AW") = TextBox24
                             Range("AX") = TextBox25
                             Range("AY") = TextBox26
                             Range("AZ") = TextBox27
                             Range("BA") = TextBox28
                             Range("BB") = TextBox29
                             Range("BC") = TextBox30
                             Range("BD") = TextBox31
                             Range("BE") = TextBox32
                             Range("BF") = TextBox33
                             Range("BG") = TextBox34
                             Range("BH") = TextBox35
                             Range("BI") = TextBox36
                             Range("BJ") = TextBox37
                             Range("BK") = TextBox38
                             Range("BL") = TextBox39
                             Range("BM") = TextBox40
                 Unload Me
       End Sub

  6. #6
    Expert éminent 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
    Par défaut
    Il y a plusieurs choses étranges dans ton code.

    Ton premier If n'as pas de End If.
    Le second non plus mais c'est normal puisque son instruction est sur la même ligne.

    Tes Range n'ont pas de numéro de ligne.
    C'est d'autant plus surprenant que, à priori, il semble que tu ais calculé ce numéro à ta ligne "Ligne = ..."

    Pour désigner un onglet par son nom, on utilise pas l'objet Sheet mais Sheets (au pluriel). Le nom est en quelque sorte un indice dans la collection de tous les onglets.

    Tu déclare la variable I comme un Integer mais tu mets dedans une référence à un onglet, ce qui n'est possible que si tu l'as déclaré en tant que Worksheet.

    Tu mets la référence à ton onglet ESSAI dans la variable I mais tu ne l'utilise pas derrière puisque tes Range ne font référence à aucun onglet.

    Avec tout ça, il me semble étrange que ton programme ait pu tourné sans qu'il t'ai envoyé un message d'erreur.

  7. #7
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut
    Justement il ne tournait pas
    J'ai mis des ' devant les lignes et j'ai essayé de m'y retrouver mais je tournais en boucle
    D'où ma demande d'aide
    Je vais donc essayer de reprendre chacune de tes observations et surtout de toutes les comprendre pour corriger mon problème
    En tout cas merci pour ton aide

  8. #8
    Expert éminent 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
    Par défaut
    Citation Envoyé par ValerieH34 Voir le message
    Justement il ne tournait pas
    Et ça ne te semblait pas opportun d'indiquer dans ta demande les erreurs qui avaient été générée à l'exécution et quelles lignes avaient été signalée en erreur ?

  9. #9
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    chaque contrôle possède une propriété "tag".

    cette propriété permet de stocker une information sur chaque contrôle (une référence, un nombre etc...)

    tu peux utiliser la propriété Tag pour optimiser le transfert des informations dans ta base de données, dans la mesure où chacun de tes contrôles correspond à une colonne de ta BDD, et que ce ne sont pas les mêmes types de contrôles

    par exemple, si chacun de tes contrôles possède le numéro de colonne où écrire dans son tag, voici comment simplifier ta boucle :

    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
    Private Sub CommandButton2_Click()
    Dim Ligne As Long
    Dim i As Integer
    Dim Ctrl As Control
     
    If MsgBox("Confirmez-vous la modification de cet agent ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
     
        ' on rattache les lignes où on va écrire à la feuille ESSAI
        ' ce qui évite d'écrire dans une autre feuille que celle là
        With Sheet("ESSAI")
            ' pour les 65 colonnes où on doit écrire
            For i = 1 To 65
                ' on cherche dans chaque controle celui dont le Tag correspond à la colonne où on doit écrire
                For Each Ctrl In Me.Controls
                    ' celui qui porte le bon tag
                    If Ctrl.Tag = i Then
                        ' transmet son contenu à la cellule située à la LIGNE voulue, et dans la colonne voulue
                        .Cells(Ligne, i) = Ctrl
                    End If
                Next Ctrl
            Next i
        End With
    End If
     
    Unload Me
     
    End Sub
    N'hésite pas si tu as des questions

  10. #10
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut
    @ Menhir
    Je suis un peu blonde je l'avoue et je n'y ai donc pas pensé.
    1er

    Suite à tes remarques j'ai apporté les modifications que j'ai comprise mais il y en a que je n'ai pas pu retranscrire

    Le END IF en effet je l'ai oublié

    2nd

    La référence de I dans les range est aussi intégré

    Après le reste je n'ai pas tout saisi
    Voici donc mon programme modifié que je lance et dont l'erreur est 1004 : La methode range a echoue

    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
    Private Sub CommandButton2_Click()
    Dim Ligne As Long
    Dim I As Integer
    If MsgBox("Confirmez-vous la modification de cet agent ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
    If Me.ComboBox1.ListIndex = -1 Then Exit Sub
    Ligne = Me.ComboBox1.ListIndex + 2
     Range("A" & I).Value = ComboBox4
     Range("B" & I).Value = ComboBox5
     Range("C" & I).Value = ComboBox6
     Range("D" & I).Value = ComboBox7
     Range("E" & I).Value = ComboBox8
     Range("F" & I).Value = TextBox4
     Range("G" & I).Value = ComboBox9
     Range("H" & I).Value = TextBox2
     Range("I" & I).Value = TextBox3
     Range("J" & I).Value = TextBox1
     Range("K" & I).Value = ComboBox10
     Range("L" & I).Value = ComboBox11
     Range("M" & I).Value = ComboBox1
     Range("N" & I).Value = ComboBox2
     Range("O" & I).Value = ComboBox3
     Range("P" & I).Value = TextBox5
     Range("Q" & I).Value = ComboBox12
     Range("R" & I).Value = ComboBox13
     Range("S" & I).Value = ComboBox14
     Range("T" & I).Value = ComboBox15
     Range("U" & I).Value = ComboBox16
     Range("V" & I).Value = ComboBox17
     Range("W" & I).Value = ComboBox18
     Range("X" & I).Value = ComboBox19
     Range("Y" & I).Value = ComboBox20
     Range("Z" & I).Value = ComboBox21
     Range("AA" & I).Value = ComboBox22
     Range("AB" & I).Value = ComboBox23
     Range("AC" & I).Value = ComboBox24
     Range("AD" & I).Value = ComboBox25
     Range("AE" & I).Value = TextBox6
     Range("AF" & I).Value = TextBox8
     Range("AG" & I).Value = TextBox7
     Range("AH" & I).Value = TextBox9
     Range("AI" & I).Value = TextBox11
     Range("AJ" & I).Value = TextBox10
     Range("AK" & I).Value = TextBox12
     Range("AL" & I).Value = TextBox13
     Range("AM" & I).Value = TextBox14
     Range("AN" & I).Value = TextBox15
     Range("AO" & I).Value = TextBox16
     Range("AP" & I).Value = TextBox17
     Range("AQ" & I).Value = TextBox18
     Range("AR" & I).Value = TextBox19
     Range("AS" & I).Value = TextBox20
     Range("AT" & I).Value = TextBox21
     Range("AU" & I).Value = TextBox22
     Range("AV" & I).Value = TextBox23
     Range("AW" & I).Value = TextBox24
     Range("AX" & I).Value = TextBox25
     Range("AY" & I).Value = TextBox26
     Range("AZ" & I).Value = TextBox27
     Range("BA" & I).Value = TextBox28
     Range("BB" & I).Value = TextBox29
     Range("BC" & I).Value = TextBox30
     Range("BD" & I).Value = TextBox31
     Range("BE" & I).Value = TextBox32
     Range("BF" & I).Value = TextBox33
     Range("BG" & I).Value = TextBox34
     Range("BH" & I).Value = TextBox35
     Range("BI" & I).Value = TextBox36
     Range("BJ" & I).Value = TextBox37
     Range("BK" & I).Value = TextBox38
     Range("BL" & I).Value = TextBox39
     Range("BM" & I).Value = TextBox40
    End If
    Unload Me
    End Sub

  11. #11
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut
    @Joe
    Merci pour cette explication que je ne connaissais pas

    J'ai essayé avec ce programme et j'ai une erreur 13 : Incompatibilité de type

  12. #12
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    déjà sur la ligne 12, j'ai oublié de corriger ton "s" manquant à "sheets" :

    Ensuite, tu as bien affecté à tes contrôles la valeur du tag ? Il faut l'écrire à la main dans la propriété de chaque contrôle.
    Tu l'écris une fois et tu n'auras plus à le faire

    Le message d'erreur vient sûrement de là : le code cherche à comparer la valeur du tag au chiffre i (qui va de 1 à 65)
    Or, si le tag est vide, il y a erreur

    Nom : Tag.png
Affichages : 146
Taille : 9,9 Ko

  13. #13
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut
    Citation Envoyé par joe.levrai Voir le message
    déjà sur la ligne 12, j'ai oublié de corriger ton "s" manquant à "sheets" :

    Je l'avais auto corrigé par rapport aux remarques de Menhir

    J'ai apporté les modifications mais j'ai toujours le même message d'erreur

  14. #14
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Désolé à nouveau, j'ai juste oublié que tu n'avais pas que ces 65 contrôles sur ton userform


    on va donc tester en amont si le contrôle contient un Tag, comme ça ça va exclure les autres contrôles que les 65 où tu as mis un tag :

    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
    Private Sub CommandButton2_Click()
    Dim Ligne As Long
    Dim i As Integer
    Dim Ctrl As Control
     
    If MsgBox("Confirmez-vous la modification de cet agent ?", vbYesNo, "Demande de confirmation de modification") = vbYes Then
        If Me.ComboBox1.ListIndex = -1 Then Exit Sub
        Ligne = Me.ComboBox1.ListIndex + 2
     
        ' on rattache les lignes où on va écrire à la feuille ESSAI
        ' ce qui évite d'écrire dans une autre feuille que celle là
        With Sheets("ESSAI")
            ' pour les 65 colonnes où on doit écrire
            For i = 1 To 65
                ' on cherche dans chaque controle celui dont le Tag correspond à la colonne où on doit écrire
                For Each Ctrl In Me.Controls
                    ' si le contrôle contient bien un tag
                    If Ctrl.Tag <> "" Then
                        ' celui qui porte le bon tag
                        If Ctrl.Tag = i Then
                            ' transmet son contenu à la cellule située à la LIGNE voulue, et dans la colonne voulue
                            .Cells(Ligne, i) = Ctrl
                        End If
                    End If
                Next Ctrl
            Next i
        End With
    End If
     
    Unload Me
     
    End Sub

  15. #15
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut
    Magnifique cela fonctionne enfin
    Un grand merci
    Derniere petite chose
    Cela me garde les données dans le formulaire mais cela ne les retranscrit pas sur la feuille
    Comment faire ?

  16. #16
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    J'ai crée un userform avec 65 contrôles, leur Tag et une valeur dans chaque

    quand j'applique le code, j'ai bien mes 65 colonnes qui se remplissent

  17. #17
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    Par défaut
    En fait, les données s'inscrivent sur les premières lignes du fichier en écrasant les données d'un autre agent
    Cela ne s'enregistre pas sur la ligne de l'agent concerné

  18. #18
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Ah d'accord, là je ne pouvais pas savoir que le calcul de ta ligne d'écriture est faux
    la ligne où écrire tu l'as calculé comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ligne = Me.ComboBox1.ListIndex + 2
    c'est à dire que tu prend la position qu'occupe l'agent dans ta combobox + 1 ligne

    exemple :

    si ta liste contient dans cet ordre
    - JEAN
    - MARC
    - PIERRE

    alors Pierre doit avoir ses données dans la ligne 4, Marc en ligne 3, Jean en ligne 2


    Comment effectues-tu le remplissage de ta combobox ?
    - Par code VBA ? Fait voir le code de l'initialisation de ton userform
    - En liant ta combobox à une référence Excel via la propriété "RowSource" ? Fait voir ta référence

  19. #19
    Membre averti
    Femme Profil pro
    Correspondante logistique
    Inscrit en
    Avril 2015
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Correspondante logistique
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2015
    Messages : 34
    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
    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
    Private Sub UserForm_Initialize()
    Dim J As Long
     Dim I As Integer
     
     
     'Pour la liste déroulante Sexe
     
     ComboBox1.ColumnCount = 1
     ComboBox1.List() = Array("Femme", "Homme")
     
     
     'Pour la liste déroulante Catégorie
     
     ComboBox2.ColumnCount = 1
     ComboBox2.List() = Array("Agent", "Encadrant")
     
     
     'Pour la liste déroulante Montant
     ComboBox3.ColumnCount = 1
     ComboBox3.List() = Array("0€", "50€", "100€", "125€")
     
     
     'Pour la liste déroulante UP
     ComboBox4.ColumnCount = 1
     ComboBox4.List() = Array("", "")
     
     
     'Pour la liste déroulante SECTEUR
     ComboBox5.ColumnCount = 1
     ComboBox5.List() = Array("", "", "")
     
     
     'Pour la liste déroulante EQUIPE
     ComboBox6.ColumnCount = 1
     ComboBox6.List() = Array("", "", "")
     
     
     'Pour la liste déroulante VILLE
     ComboBox7.ColumnCount = 1
     ComboBox7.List() = Array("", "", "")
     
     
     'Pour la liste déroulante PDL
     ComboBox8.ColumnCount = 1
     ComboBox8.List() = Array("", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "")
     
     
     'Pour la liste déroulante N° PORTANT
     ComboBox9.ColumnCount = 1
     ComboBox9.List() = Array("1", "2", "3", "4", "5", "6", "7", "PLIE")
     
     
     'Pour la liste déroulante METIER
     ComboBox10.ColumnCount = 1
     ComboBox10.List() = Array("SE", "SM")
     
     
     'Pour la liste déroulante TENUE
     ComboBox11.ColumnCount = 1
     ComboBox11.List() = Array("M3", "M6")
     
     
     'Pour la liste déroulante QUANTITE PARKA
     ComboBox12.ColumnCount = 1
     ComboBox12.List() = Array("1")
     
     
     'Pour la liste déroulante TAILLE PARKA
     ComboBox13.ColumnCount = 1
     ComboBox13.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "SM")
     
     
     'Pour la liste déroulante QUANTITE VESTE
     ComboBox14.ColumnCount = 1
     ComboBox14.List() = Array("0", "1", "2", "3", "4", "5")
     
     
     'Pour la liste déroulante TAILLE VESTE
     ComboBox15.ColumnCount = 1
     ComboBox15.List() = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "SM")
     
     
     'Pour la liste déroulante QUANTITE POLO MC
     ComboBox16.ColumnCount = 1
     ComboBox16.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
     
     
     'Pour la liste déroulante TAILLE POLO MC
     ComboBox17.ColumnCount = 1
     ComboBox17.List() = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "SM")
     
     
     'Pour la liste déroulante QUANTITE POLO ML
     ComboBox18.ColumnCount = 1
     ComboBox18.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10")
     
     
     'Pour la liste déroulante TAILLE POLO ML
     ComboBox19.ColumnCount = 1
     ComboBox19.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "SM")
     
     
     'Pour la liste déroulante QUANTITE PANTALON
     ComboBox20.ColumnCount = 1
     ComboBox20.List() = Array("0", "1", "2", "3", "4", "5")
     
     
     'Pour la liste déroulante TAILLE PANTALON
     ComboBox21.ColumnCount = 1
     ComboBox21.List() = Array("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "SM")
     
     
     'Pour la liste déroulante ENTREJAMBE PANTALON
     ComboBox22.ColumnCount = 1
     ComboBox22.List() = Array("70", "75", "80", "85", "90", "95", "100")
     
     
     'Pour la liste déroulante QUANTITE COMBINAISON
     ComboBox23.ColumnCount = 1
     ComboBox23.List() = Array("0", "1", "2", "3", "4", "5")
     
     
     'Pour la liste déroulante TAILLE COMBINAISON
     ComboBox24.ColumnCount = 1
     ComboBox24.List() = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "SM")
     
     
     'Pour la liste déroulante ENTREJAMBE COMBINAISON
     ComboBox25.ColumnCount = 1
     ComboBox25.List() = Array("70", "75", "80", "85", "90", "95", "100")
     
     
     'Correspond au nom de votre onglet dans le fichier Excel
     Set Ws = Sheets("ESSAI")
     
    End Sub
    J'ai voulu faire une modification sur un autre agent et elles ne se sont pas enregistrées
    Cela n'enregistre que sur un seul agent, c'est à dire le premier que j'ai testé

  20. #20
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    tu n'as pas compris mon précédent message, je vais tourner la question à l'envers :

    sur quelle ligne on doit se positionner ? Quelle est la valeur unique sur cette ligne qui nous permet de la détecter ?
    Tu parlais d'un "AGENT", mais je ne vois nul part cette donnée dans ta procédure d'initialisation

    là tu calcules ta LIGNE en utilisant la valeur choisie dans Combobox1

    Or, Combobox1 ne contient que deux valeurs
    ComboBox1.ColumnCount = 1
    ComboBox1.List() = Array("Femme", "Homme")
    donc, t'auras beau faire ce que tu veux, tu ne pourras écrire qu'en ligne 2 (si tu as choisi FEMME) et en ligne 3 (si tu as choisi HOMME)

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [WD18] comment programmer un bouton modifier?
    Par oumarsaw dans le forum WinDev
    Réponses: 10
    Dernier message: 02/03/2015, 19h39
  2. [Débutant] besoin de programmer les boutons supprimer, ajouter, modifier
    Par camelia99 dans le forum VB.NET
    Réponses: 3
    Dernier message: 25/05/2012, 10h38
  3. Des difficultés à parser et modifier XML
    Par blackbird1 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 18/03/2012, 11h52
  4. Réponses: 16
    Dernier message: 20/11/2011, 15h27

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