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:
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:
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:
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:
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 |
test du logiciel de Phllipe T
Bonjour
Je l'avais testé et je le reteste
Cela avait conduit à une erreur 42F
Code:
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