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 :

utlisation de removeitem


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut utlisation de removeitem
    bonjour

    je reviens sur un sujet pour lequel j'avais eu une réponse (docmarti)

    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
     
    Private Sub CommandButton1_Click()
     
    Dim j As Integer
    Dim code_comp As String
     
    code_comp = InputBox("", , "")
     
     For j = Me.ComboBox1.ListCount - 1 To 0 Step -1
     
       If ComboBox1.List(j, 0) = code_comp Then
        ComboBox1.RemoveItem j
     
       End If
     Next j
    End Sub
    En faisant mes vérifications, je viens de voir (tardivement) que rien ne se passait

    L'item que je voulais supprimer est toujours présent

    j'ai vérifié en amont l'utilisation (normalement car Mr Couper Coller a peut-être sévi) exclusive de additem

    par contre dans une combobox le champ list rows était différentde 0

    en aval je termine par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    MsgBox ("Produit fonctionnellement supprimé") 'Vous informant que le présent code est modifié dans votre tableau Excel.
     
    Unload Me ' Vide et ferme l'Userform ( formulaire)
    merci par avance (je suis en exel 2007)

  2. #2
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Bonjour michel, bonjour le forum,

    Je n'ai pas vraiment compris la fin de ton post...
    Le code proposé ne fonctionnera que si la ComboBox est alimentée autrement que par la propriété [RowSource]. Et, selon comment elle est alimentée (tu ne fournis malheureusement pas le code qui l'alimente...), à la prochaine réouverture de l'UserForm, tu risques de retrouver l'item pourtant supprimé...
    Si tu fournis le code complet, on poura peut-être te proposer une solution convenable...
    À plus,

    Thauthème

    Je suis Charlie

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut fichiers pour remove item
    bonjour


    tu as raison je te transmets une partie du code

    je travaille avec des structures équivalents pour
    gestion du code compétence
    gestion du code missions
    gestion du code bénévole/compétence
    gestion du code bénévole/missions
    etc

    mais la philosophie est identique

    je donne l'exemple gestion du code compétence



    je n'ai pas mis les fonctions et procédures

    je n'ai pas encore fait le ménage sur les datas inutiles....... et surtout des couper coller (ex initialize) dupliqués

    merci beaucoup




    Initialize

    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
     
     '****************************************************
     'Positionnement sur le premier élément de la liste des codes competences
     '****************************************************
     
     
      With Me.ComboBox3
        For j = 2 To ws3.Range("A" & Rows.Count).End(xlUp).Row
         .AddItem ws3.Range("A" & j)
       Next j
      End With
     
     
    If ComboBox3.ListIndex = -1 Then GoTo etiq2
     
     
    Me.ComboBox3.ListIndex = 0     'premiere donnée stockée
     
     
      For i = 2 To ws3.Range("A" & Rows.Count).End(xlUp).Row  'on lance une boucle de valeur mini 1 et maxi 8 9 ...
        Me.Controls("Textbox" & i).Visible = True  'affiche les données dans les textbox
     Next i
     
    With Me.ComboBox3
        For j = 2 To ws3.Range("A" & Rows.Count).End(xlUp).Row
          .AddItem ws3.Range("A" & j)
        Next j
      End With
     
     
     
      '******************************************
     '  Ajout d'item avec la méthode Add(bénévoles Item pour
     ' remplir une ComboBox ou Listbox.  (ici code)
     ' ******************************************
     
     For i = 2 To ws3.Range("A65000").End(xlUp).Row
      ComboBox3 = ws3.Range("A" & i)
     
      If ComboBox3.ListIndex = -1 Then ComboBox3.AddItem ws3.Range("A" & i)
     Next i
    partie liste déroulante

    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
     
    ' **************************************
    'Correspond au programme de la LISTE DEROULANTE
    ' **************************************
     
    ' **************************************
    ' Traitement des codes compétences   ********************************
    '***************************************
     
     Private Sub ComboBox3_Change()
    Dim ligne As Long
    Dim i As Integer
    Dim chemin As String
     Dim ws3 As Variant
     
     
    Set ws3 = Sheets("CODE")
    Dim j As Integer
     
     
     
     
      If Me.ComboBox3.ListIndex = -1 Then Exit Sub
      ligne = Me.ComboBox3.ListIndex + 2
     
     
    ' **************************************
    ' Traitement et code et partage
    '***************************************
     Dim h As Integer
     
     With ComboBox3
       Rem        données code
       Me.ComboBox3 = ws3.Cells(ligne, "A")   ' code
       Me.TextBox1 = ws3.Cells(ligne, "B")    ' libellé
    End With
     
     
     
     
     
    End Sub
     
     ' **************************************
    'Choix code competence pour un benevole via liste**
    '***************************************
     
     
    Private Sub combobox3_click()
     
     
     
     
    MsgBox ComboBox3.Value
     
    TextBox4 = ComboBox3.Value
     
    End Sub

    gestion : création / modification

    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
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
     
    Rem ****************************************************
     Rem         Création de code compétence
     Rem ***********************************************************
     Private Sub CommandButton9_Click()
     
     
     
      Dim libel As String
     
      Dim j As Variant
      Dim l As Integer
     
      Dim feuillet As Script
    Dim res_verif As Boolean
    Dim code_comp As String
    Dim i As Integer
    Dim h As Integer
    Dim rang As Integer
    Dim by_val As Boolean
    Dim libel_comp As String
    Dim ws3 As Variant
    Dim ws4 As Variant
    Dim num As Integer
    Dim calcul_limite_table_comp As Integer
    Dim val As Variant
    Dim liste_code_comp_code() As String
    Dim ligne As Integer
     
    Call TRICOD
     
     
     
     '
      'reception code competence
      '
     
     
    code_comp = InputBox("vous devez saisir le code compétence que vous voulez inclure sur 3 caractères")
     
    i = Len(code_comp)
     
     
     
    If i <> 3 Then
        MsgBox "vous deviez saisir le code compétence sur 3 caractères; nous abandonnons la demande"
        Exit Sub
     End If
     
    Rem
    Rem  vérification de l'existence du code competence
    Rem
     
     Set ws3 = Sheets("CODE")
              'MsgBox "le code saisi n'existe pas"
               If verif_codecomp2(code_comp, res_verif) = True Then
     MsgBox ("le code saisi existe déjà  ")
     Exit Sub
     End If
     
     
     
     
     
     
     
     
    libel_comp = InputBox("vous devez saisir le libellé que vous voulez ajouter sur 20 caractères au maximum")
    i = Len(libel_comp)
     
    If i > 20 Then
        MsgBox "vous deviez saisir le libellé du code compétence sur moins de 21 caractères; nous abandonnons la demande"
        Exit Sub
     End If
    '
    'l'article cree ira en fin de fichier
    'h donne le nombre d'article
    'la création se fera en h
    '
    Set ws3 = Sheets("CODE")
    Me.ComboBox3 = code_comp
    Me.TextBox1 = libel_comp
    h = Me.ComboBox3.ListCount
    Rem        données code
       '
     
     
    Rem        données code
     
       ws3.Cells(h + 2, "B").Value = Me.TextBox1
       ws3.Cells(h + 2, "A").Value = Me.ComboBox3
       Me.ComboBox3.AddItem (h + 2)
     
          Set ws3 = Sheets("CODE")
          If MsgBox("Etes-vous certain de vouloir INSERER ce nouveau code ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message
          Else: Exit Sub
          End If
     
          i = Me.ComboBox3.ListCount
     
     
     
    fin3:
       Call TRICOD
    Rem
    ' Affiche une boîte de message
    MsgBox ("Produit inséré dans fichier sélectionné") 'Vous informant que le présent code est inséré dans votre tableau Excel.
     
    Unload Me ' Vide et ferme l'Userform ( formulaire)
    UserForm2.Show False  'affiche le formulaire
    End Sub
     
       '
     
     
     
    Rem ****************************************************
     Rem         Modification de code compétence
     Rem **********************************************************
    Rem ***********************************************************
    Rem
    Rem
    Rem vérification
    Rem    traitement
    Rem               -interface avec utilisateur
    Rem                     - verification nombre de caracteres reçus
    Rem                      - accès aux  données pour voir si code existe
    Rem                      - prise en compte nouvau libellé
    Rem
    Private Sub CommandButton11_Click()
     
    Dim code_comp As String
    Dim i As Integer
    Dim h As Integer
    Dim l As Integer
    Dim rang As Integer
     
    Dim libel_comp As String
    Dim ws3 As Variant
    Dim num As Integer
    Dim calcul_limite_table_comp As Integer
    Dim val As Variant
    Dim res_verif As Boolean
    Dim j As Integer
     
     
     
    Call TRICOD
     
     
     '
      'reception code competence
      '
     
     
    code_comp = InputBox("vous devez saisir le code compétence que vous voulez inclure sur 3 caractères")
     
    i = Len(code_comp)
     
     
    If i <> 3 Then
        MsgBox "vous deviez saisir le code compétence sur 3 caractères; nous abandonnons la demande"
        Exit Sub
     End If
     
     
    ' saisie libellé
     
    libel_comp = InputBox("vous devez saisir le libellé que vous voulez modifier sur 20 caractères au maximum")
     
    i = Len(code_comp)
     
     
    If i > 20 Then
        MsgBox "vous deviez saisir le libellé sur 20 caractères; nous abandonnons la demande"
        Exit Sub
     End If
     
    '
    Rem
    Rem  vérification de l'existence du code competence
    Rem
     
     Set ws3 = Sheets("CODE")
     If verif_codecomp2(code_comp, res_verif) = False Then
     MsgBox ("le code saisi n'existe pas ")
     Exit Sub
       End If
     
    suite1:
     
     
    Set ws3 = Sheets("CODE")
     
     For j = Me.ComboBox3.ListCount - 1 To 0 Step -1
     
       If ComboBox3.List(j, 0) = code_comp Then
       ComboBox3.RemoveItem (j)
     
        GoTo suite3:
       End If
     Next j
     
     
    suite3:
    Me.ComboBox3 = code_comp
    Me.TextBox1 = libel_comp
    ' h = Me.ComboBox3.ListCount
    Rem        données code
      ws3.Cells((j + 2), "B").Value = Me.TextBox1
     
      Me.ComboBox3.AddItem (j + 2)
     
     
    fin3:
       Call TRICOD
    Rem
    ' Affiche une boîte de message
    MsgBox ("Produit modifié dans fichier sélectionné") 'Vous informant que le présent libellé est inséré dans votre tableau Excel.
     
    Unload Me ' Vide et ferme l'Userform ( formulaire)
    UserForm2.Show False  'affiche le formulaire
    End Sub
    Suppression

    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
     
    Rem ***********************************************************
     
     
    Rem ****************************************************
     Rem         Suppression de code compétence
     Rem **********************************************************
    Rem ***********************************************************
    Rem
    Rem
    Rem vérification
    Rem    traitement
    Rem               -interface avec utilisateur
    Rem                     - verification nombre de caracteres reçus
    Rem                      - accès aux  données pour voir si code existe
    Rem                      - verification qu'aucun bénévole n'est rattaché à ce code
    Rem                     - suppression du code
    Rem
    Private Sub CommandButton10_Click()
     
    Dim res_verif As Boolean
    Dim code_comp As String
    Dim i As Integer
    Dim h As Integer
    Dim l As Integer
    Dim j As Integer
    Dim rang As Integer
    Dim by_val As Boolean
    Dim libel_comp As String
    Dim ws3 As Variant
    Dim ws4 As Variant
    Dim calcul_limite_table_compe_ben As Integer
    Dim calcul_limite_table_comp As Integer
    Dim num As Integer
    Dim cod_retour_proc As String
    Dim val As String
    Dim index As Integer
    Dim save_j As Integer
     Set ws3 = Sheets("CODE")
     
     
     
    Call TRICOD
     
      '
      'reception code competence
     
      '
      'reception code competence
      '
     
     
    code_comp = InputBox("vous devez saisir le code compétence que vous voulez supprimer sur 3 caractères")
     
    i = Len(code_comp)
     
     
     
    If i <> 3 Then
        MsgBox "vous deviez saisir le code compétence sur 3 caractères; nous abandonnons la demande"
        Exit Sub
     End If
     
    Set ws3 = Sheets("CODE")
     
     Set ws4 = Sheets("liste competences par personnes")
                         If verif_codecomp2(code_comp, res_verif) = False Then
     MsgBox ("le code saisi n'existe pas ")
     Exit Sub
       End If
     
    suite1:
    '     test si competence n'est pas utilisé
     
     
    Set ws4 = Sheets("liste competences par personnes")
     If verif_codecomp(code_comp, res_verif) = True Then
              MsgBox ("le code saisi est  encore utilisé")
     Exit Sub
       End If
     
     
     
     For j = Me.ComboBox3.ListCount - 1 To 0 Step -1
     
     
       If ComboBox3.List(j, 0) = code_comp Then
     
           ' save_j = j
             ComboBox3.RemoveItem (j)
     
        GoTo efface:
       End If
     Next j
     
    efface:
     
    Call TRICOD
     
    Rem
    ' Affiche une boîte de message
    MsgBox ("Produit fonctionnellement supprimé") 'Vous informant que le présent code est modifié dans votre tableau Excel.
     
    Unload Me ' Vide et ferme l'Userform ( formulaire)
     
    UserForm2.Show False  'affiche le formulaire
     
     
    End Sub
     
     
    fin3:
       Call TRICOD
    Rem
    ' Affiche une boîte de message
    MsgBox ("Produit modifié dans fichier sélectionné") 'Vous informant que le présent libellé est inséré dans votre tableau Excel.
     
    Unload Me ' Vide et ferme l'Userform ( formulaire)
    UserForm2.Show False  'affiche le formulaire
    End Sub

  4. #4
    Membre émérite Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Points : 2 594
    Points
    2 594
    Par défaut
    Re,

    Désolé mais trop d'infos sans savoir quoi gérer. Dis-nous ce qui ne vas pas ! Quelle est la ligne du code qui plante et comment est alimenté la Combobox...
    À plus,

    Thauthème

    Je suis Charlie

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut complément d infos
    bonsoir

    quelques informations


    j'ai crée un code compétence (voir gestion création)


    ligne 80 à 112
    tout est créé

    j'ai voulu supprimer le code créé (voir suppression ligne 83 à 120)

    tout se passe bien : pas d'erreur, mais le code n'est pas supprimé)


    je vous ai mis aussi la parte initialize de ws3 sheet CODE



    je pense que seul ADDITEM est utilisé mais il y a peut-être un oubli
    merci


    e

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Voici un code simple qui fonctionne avec la procédure que tu as publiée. Ici le contrôle est un ListBox mais c'est pareil.
    La liste est alimentée par la première colonne de la plage A2:B7 de la feuille nommée [Pays]
    Attention que comme l'a bien fait remarquer Thautheme, l'élément cherché disparaît de la liste mais pas de la plage de données source.
    Procédure événementielle d'initialisation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Private Sub UserForm_Initialize()
     Dim rng As Range, row As Long, Visible As Boolean
     Set rng = ThisWorkbook.Worksheets("Pays").Range("A2:B7")
     With ListBox1
     .ColumnCount = 1: .ColumnWidths = "50"
      For row = 1 To rng.Rows.Count
      .AddItem rng.Cells(row, 1)
      Next
     End With
    End Sub
    Procédure événementielle du Clic sur CommandButton
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
     Dim j As Integer, code_comp As String
     code_comp = InputBox("", , "")
     With Me.ListBox1
      For j = .ListCount - 1 To 0 Step -1
       If .List(j, 0) = code_comp Then .RemoveItem j
      Next j
     End With
    End Sub
    Petite question qui n'a rien à voir avec ta demande.
    Pourquoi utilises-tu la fonction InputBox fort peu pratique alors que tu pourrais utiliser un contrôle TextBox ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut removeitem story
    bonjour

    en premier merci à Thautheme et Philippe

    j'ai pris du temps car je galère (en vba je suis un débutant)

    1) l'élément cherché disparaît de la liste mais pas de la plage de données source.

    je comprends qu'il figure dans le fichier mais ne figure plus dans les listes

    2) question Philippe sur TEXTBOX <-> INPUT


    manque de connaissance =======> JE FERAIS UN TOUR COMPLET QUAND LA VERSION 1 TOURNICOTERA


    [BMES BUGS PRINCIPAUX[/B]

    En création je reste sur le premier ITEM

    code CREATION

    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
    Set ws3 = Sheets("CODE")
     
    With Me.ComboBox3
    Me.ComboBox3 = code_comp
    Me.TextBox1 = libel_comp
     
    Rem        données code
      h = Me.ComboBox3.ListCount
       ws3.Cells(h + 2, "B").Value = Me.TextBox1
       ws3.Cells(h + 2, "A").Value = Me.ComboBox3
     
           Me.ComboBox3.AddItem Cells(h + 2, 1)
     
     
    End With
          Set ws3 = Sheets("CODE")
          If MsgBox("Etes-vous certain de vouloir INSERER ce nouveau code ?", vbYesNo, "Demande de confirmation") = vbYes Then 'condition : si oui au message
          Else: Exit Sub
          End If
    CODE COMOBOX3_CHANGE

    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
    ' **************************************
    'Correspond au programme de la LISTE DEROULANTE
    ' **************************************
     
    ' **************************************
    ' Traitement des codes compétences   ********************************
    '***************************************
     
     Private Sub ComboBox3_Change()
    Dim ligne As Long
    Dim i As Integer
    Dim chemin As String
     Dim ws3 As Variant
     
     
    Set ws3 = Sheets("CODE")
    Dim j As Integer
     
     
     
    ' **************************************
    ' Traitement et code et partage
    '***************************************
     
     With ComboBox3
       Rem        données code
     
       If Me.ComboBox3.ListIndex = -1 Then Exit Sub
      ligne = Me.ComboBox3.ListIndex + 2
     
       Me.ComboBox3 = ws3.Cells(ligne, "A")   ' code
       Me.TextBox1 = ws3.Cells(ligne, "B")    ' libellé
    End With
     
     
     
    End Sub
     
     ' **************************************
    'Choix code competence pour un benevole via liste**
    '***************************************
     
     
    Private Sub combobox3_click()
     
     
     
     
    MsgBox ComboBox3.Value
     
    TextBox4 = ComboBox3.Value
     
    End Sub



    en fait listindex revient à 0

    J 'ai regardé COMBOBOX3_CHANGE et cela se bloque sur listindex qui revient à 0





    ==============================================================
    De plus l'envoi de USERFORM.show false partait en erreur 429 (demande de license)

    caché via on resume error next

    '
    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
     **************************************
    'multi page  ********************************
    '***************************************
    Private Sub CommandButton10_Click()
    Dim modal As Variant
    Dim rangs As Byte
    Dim rangi As Integer
    Dim UserForm As Object
    Dim lettre_g1 As String
    Dim nomUserForm As String
    Dim code As String
    Dim libel As String
    Dim inter() As String
     
    'fnct = ComboBox3.Value
    Dim i As Integer
    Dim j As Integer
    Dim stxt As Object
    Dim car1_g As Variant
    With Me.ComboBox3
    car1_g = Left(ComboBox3, 1)
    End With
     rangi = car1_g
     rangi = rangi + 1

  8. #8
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je crois que ce serait plus simple que tu expliques ce que tu souhaites faire comme programme en décrivant l'organisation de tes données dans la ou les feuilles de calcul.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut explicationr
    bonjour

    j'ai préparé un power point (qualité médiocre) mais qui peut faire comprendre les besoins

    quand je vois tes documents clairs ....

    Michel

    bonne soirée je rencontre des difficultés dans l'envoi de la pièces joints

  10. #10
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    On n'a absolument pas besoin d'une présentation Powerpoint pour expliquer ce que l'on souhaite faire avec un ListBox et en donnant un descriptif de la liste de données auquel il se rapporte. Quatre ou cinq lignes devraient suffire.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  11. #11
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut explications
    rebonjour

    Je gère les bénévoles

    les données de base sont dans un formulaire maitres (en liaison avec l'opérateur)

    ce formulaire dialogue via le mode non modal avec des formulaires en charge de spécificités :
    formulaire compétences
    formulaire mission
    etc

    tout se passe bien mais en utilisant tes modifications j'ai eu une erreur me demandant la licence (résolue avec on error resume next)

    les données sont étanches

    dans chaque formulaire de niveau 2 je gère la gestion des codes de sa famille (ex compétence) (création,modification,suppression) et les données associant le code (ex compétence) et une table associant le bénévole au code

    une fonction permet de dire si un bénévole existe ou n'existe pas (utilisation lors de l'ajout ou le retrait d'une compétence)


    mes deux fichiers (par sous formulaire) sont en combobox
    le problème que je rencontre se situe au niveau du removeitem lors d'une demande de suppression

    j'ai pas de message d'erreur (j'ai vérifié qu'un resume error ne se balade pas)

    les messages d'insertion sont bons mais rien n'a été enlevé


    le power point va me servir pour présenter le produit

    encore merci
    Fichiers attachés Fichiers attachés

  12. #12
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonour,
    Désolé mais je ne vois comment t'aider car tes explications partent dans tous les sens et onne peux pas apporter une réponse avec autant d'éléments.
    J'ai publié une réponse avec un code qui fonctionne avec la méthode Removeitem. As-tu testé ce code ?
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  13. #13
    Nouveau membre du Club
    Homme Profil pro
    retraité telecom
    Inscrit en
    Mai 2016
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 76
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : retraité telecom
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Mai 2016
    Messages : 64
    Points : 28
    Points
    28
    Par défaut test du logiciel de Phllipe T
    Bonjour
    Je l'avais testé et je le reteste
    Cela avait conduit à une erreur 42F

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
                    nomUserForm = "UserForm" & rangi
                  VBA.UserForms.Add(nomUserForm).Show False
                    Unload Me
                    Exit Sub
    j'ai utilisé
    on error resume next pour continuer


    j'ai créé une nouvelle entrée de la table des codes compétences

    celà s'est fait mais la liste déroulante reste vide

    on ne peut aller au delà de 10 entrées

    ensuite la place est libérée en libérant la première entrée



    sur mon logiciel il me reste à comprendre le dysfonctionnement du remove item**

    bonne journée

  14. #14
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je l'avais testé et je le reteste
    Cela avait conduit à une erreur 42F
    C'est curieux car je teste tous les codes que je publie sur le forum et je n'ai pas eu de problème.
    A quelle ligne as tu eu cette erreur ?
    j'ai utilisé on error resume next pour continuer
    En utilisant cette instruction, tu passes juste à la ligne suivante mais tu ne peux pas obtenir le résultat escompté.
    sur mon logiciel il me reste à comprendre le dysfonctionnement du remove item**
    bonne journée
    Bonne journée à toi également et bonne chance.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

Discussions similaires

  1. Réponses: 12
    Dernier message: 02/09/2005, 17h44
  2. Détourner l"utlisation normale d'un module
    Par siaoly dans le forum Modules
    Réponses: 4
    Dernier message: 28/08/2005, 16h32
  3. problème avec instruction "RemoveItem"
    Par audrey_desgres dans le forum Access
    Réponses: 4
    Dernier message: 15/06/2005, 09h26
  4. DBImage en utlisant OpenDialog
    Par adgabd dans le forum Bases de données
    Réponses: 1
    Dernier message: 23/05/2005, 20h10

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