re-Modification à partir d'une ComboBox dans un tableau dynamique

Fariri

XLDnaute Junior
Bonjour (me revoilà :( ),

Débutante en VBA, je viens vers vous car j'ai conçu un petit programme qui décidément n'en fait qu'à sa tête (ou se paye la mienne).
Pour des raisons de confidentialité, je ne peux pas mettre mon fichier.

Mon fichier est sensé faire les choses suivantes :
J'ai 1 userfom avec plusieurs combobox,
le but est de soit remplir une fiche agent soit de la modifier via la combobox9 qui est une liste déroulante ou encore supprimer cette fiche.
puis un tri par ordre alphabétique est fait et la combobox9 se rafraichi

le soucis est que quand j'ajoute un agent puis le modifie, à un moment donnée
le programme ne me modifie pas l'agent
puis quand j'insiste, en réessayant, il me rajoute un agent en bas en laissant plusieurs ligne vide
de plus ma combobox9 au lieu d'être rafraîchi, parfois elle additionne les agents.

Je sollicite votre aide une fois de plus pour m'aider à résoudre mon soucis


'*****************************************************************************************************************************************************
'2) FONCTION QUI PERMET DE TRIER LES TABLEAUX DANS LES DIFFERENTES FEUILLES
'*****************************************************************************************************************************************************
Sub trier_tableau()

'TRIE DE L'ONGLET AGENT (Commence à trier en A2)


Range("A1:I42").Select
ActiveWorkbook.Worksheets("Agents").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Agents").Sort.SortFields.Add Key:=Range("B1:B42"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

With ActiveWorkbook.Worksheets("Agents").Sort
.SetRange Range("A1:I42")
.Header = xlYes 'La propriété Header notamment (.Header = xlYes) confirme bien la présence d'entêtes à ne pas inclure dans le tri.
.MatchCase = False 'La propriété MatchCase (.MatchCase = False) ainsi réglée, permet d'ignorer les différences de casse (Majuscules-Minuscules), dans le tri.
.Orientation = xlTopToBottom
.Apply 'la méthode Apply permet d'appliquer le tri sur le tableau, selon tous les paramètres définis en amont
End With


'TRIE DE L'ONGLET MATERIEL (Commence à trier en A3)
Range("A2:I42").Select
ActiveWorkbook.Worksheets("Matériel").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Matériel").Sort.SortFields.Add Key:=Range("A2:A42"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Matériel").Sort
.SetRange Range("A2:I42")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With


'TRIE DE L'ONGLET Véhicule_Agent (Commence à trier en A2)
Range("A1:I42").Select
ActiveWorkbook.Worksheets("Véhicule_Agent").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Véhicule_Agent").Sort.SortFields.Add Key:=Range("A1:A42"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Véhicule_Agent").Sort
.SetRange Range("A1:I42")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With


'TRIE DE L'ONGLET DOTATION (Commence à trier en A3)
Range("A2:I42").Select
ActiveWorkbook.Worksheets("Dotation").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Dotation").Sort.SortFields.Add Key:=Range("A2:A42"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Dotation").Sort
.SetRange Range("A2:I42")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With


'TRIE DE L'ONGLET HABILITATION (Commence à trier en A3)
Range("A2:I42").Select
ActiveWorkbook.Worksheets("Habilitation").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Habilitation").Sort.SortFields.Add Key:=Range("A2:A42"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Habilitation").Sort
.SetRange Range("A2:I42")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With


'TRIE DE L'ONGLET FORMATION (Commence à trier en A3)
Range("A2:I42").Select
ActiveWorkbook.Worksheets("Formation").Sort.SortFields.Clear
ActiveWorkbook.Worksheets("Formation").Sort.SortFields.Add Key:=Range("A2:A42"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal
With ActiveWorkbook.Worksheets("Formation").Sort
.SetRange Range("A2:I42")
.Header = xlYes
.MatchCase = False
.Orientation = xlTopToBottom
.Apply
End With


End Sub

'*****************************************************************************************************************************************************
'3) PROCEDURE DE LA COMBOBOX (liste déroulante)-
' REMPLIR LES CHAMPS DES COMBOBOX (civilité, nom,.....)
'*****************************************************************************************************************************************************

Private Sub ComboBox9_Change()



'Je Remplis les champs de la ComboBox 1 à la ComboBox 8
If ComboBox9.ListIndex = -1 Then Exit Sub
lig = Application.Match(ComboBox9, Feuil3.[B:B], 0) 'renvoye N°ligne
For col = 1 To 8 'on rempli les combox
Controls("ComboBox" & col) = Feuil3.Cells(lig, col)

Next


'Affiche les photos dans la ComboBox9 si la combobox est différente de vide
If ComboBox9.Text <> "" Then
Call Afficher 'appelle la fonction "Afficher"
End If


End Sub

'*****************************************************************************************************************************************************
' => BOUTON
'7) PROCEDURE POUR AJOUTER UN NOUVEL AGENT DANS LA BASE DE DONNEE
'*****************************************************************************************************************************************************

Private Sub BtnAjout_Click()

'DECLARATION DES VARIABLES
Dim V_I As Long ' Variable "V_I" (la variable sert pour le raffraichissemnt de la combobox)
Dim V_K As Long ' Variable nommée "V_K" (la variable sert pour le raffraichissemnt de la combobox)
Dim V_Boite 'variable pour la message Box qui apparaît


'Apparition de la message Box
V_Boite = MsgBox("voulez-vous ajouter une nouvelle fiche agent ?", vbYesNo + vbQuestion, "question")

'Si la combobox 2 est vide la messageBox apparait
If ComboBox1.Value = "" Then
MsgBox ("veuillez remplir le champ : CIVILITE")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox2.Value = "" Then
MsgBox ("veuillez remplir le champ : NOM")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox3.Value = "" Then
MsgBox ("veuillez remplir le champ : PRENOM")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox4.Value = "" Then
MsgBox ("veuillez remplir le champ ")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox5.Value = "" Then
MsgBox ("veuillez remplir le champ : STATUT")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox6.Value = "" Then
MsgBox ("veuillez remplir le champ : N° de Téléphone Portable")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox7.Value = "" Then
MsgBox ("veuillez remplir le champ : N° de Téléphone Bureau")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox8.Value = "" Then
MsgBox ("veuillez remplir le champ : Date de Naissance")


'Sinon si clique sur "oui"
ElseIf V_Boite = vbYes Then


Sheets("Agents").Range("A1").End(xlDown).Offset(1, 0).Value = ComboBox1.Value
Sheets("Agents").Range("B1").End(xlDown).Offset(1, 0).Value = ComboBox2.Value
Sheets("Agents").Range("C1").End(xlDown).Offset(1, 0).Value = ComboBox3.Value
Sheets("Agents").Range("D1").End(xlDown).Offset(1, 0).Value = ComboBox4.Value
Sheets("Agents").Range("E1").End(xlDown).Offset(1, 0).Value = ComboBox5.Value
Sheets("Agents").Range("F1").End(xlDown).Offset(1, 0).Value = Format(ComboBox6.Value, "0#"" ""##"" ""##"" ""##"" ""##")
Sheets("Agents").Range("G1").End(xlDown).Offset(1, 0).Value = Format(ComboBox7.Value, "00"" ""00"" ""00"" ""00"" ""00")
Sheets("Agents").Range("H1").End(xlDown).Offset(1, 0).Value = Format(ComboBox8.Value, "dddd d mmmm yyyy")


Sheets("Matériel").Range("A3").End(xlDown).Offset(1, 0).Value = ComboBox2.Value
Sheets("Matériel").Range("B3").End(xlDown).Offset(1, 0).Value = ComboBox3.Value


Sheets("Véhicule_Agent").Range("A2").End(xlDown).Offset(1, 0).Value = ComboBox2.Value
Sheets("Véhicule_Agent").Range("B2").End(xlDown).Offset(1, 0).Value = ComboBox3.Value


Sheets("Dotation").Range("A3").End(xlDown).Offset(1, 0).Value = ComboBox2.Value
Sheets("Dotation").Range("B3").End(xlDown).Offset(1, 0).Value = ComboBox3.Value


Sheets("Habilitation").Range("A3").End(xlDown).Offset(1, 0).Value = ComboBox2.Value
Sheets("Habilitation").Range("B3").End(xlDown).Offset(1, 0).Value = ComboBox3.Value


Sheets("Formation").Range("A3").End(xlDown).Offset(1, 0).Value = ComboBox2.Value
Sheets("Formation").Range("B3").End(xlDown).Offset(1, 0).Value = ComboBox3.Value

'Mise à jour de la TextBox contenant l'effectif des agents en l'incrémentant
TextEffectif = TextEffectif + 1

'J'appelle la fonction qui permet de trier les tableaux de toutes les feuilles sélectionnées
trier_tableau

'je raffraichis la ComboBox9 avec la liste Nom de la feuille Agents
With Sheets("Agents") 'Agents est le nom de sa feuille
V_I = .Range("B" & Rows.Count).End(xlUp).Row
For V_K = 2 To V_I
ComboBox9.AddItem .Range("B" & V_K).Value ' B est la colonne
Next V_K
End With

'Je vide le champ de la ComboBox intitulée RECHERCHE
ComboBox9 = ""

'Je retourne dans l'onglet "AGENTS"
Sheets("Agents").Activate

'Je fais apparaître une fenêtre avec un message et un bouton OK
MsgBox "Un nouvel agent a été rajouté à la base de données", vbOKOnly + vbInformation


'Sinon si clique sur "non"
Else
If Me.ComboBox9.ListIndex = -1 Then Exit Sub 'On sort si la réponse est non
MsgBox ("La base de données n'a pas été modifié")


End If


End Sub

'*****************************************************************************************************************************************************
' => BOUTON
'8) MODIFICATION DE LA FICHE AGENT
'*****************************************************************************************************************************************************

Private Sub BtnModifierAgent_Click()

'DECLARATION DES VARIABLES
Dim no_ligne As Integer 'Variable qui va définir le numéro de ligne
Dim V_Boite 'variable pour la boite de message qui apparaît

'si la combobox9 est vide le messageBox suivant apparait : "veuillez remplir le champ RECHERCHE PAR NOM"
If ComboBox9 = "" Then
MsgBox ("Veuillez sélectionner l'agent dans le champ : RECHERCHE PAR NOM")




'Apparition de la message Box
Else: V_Boite = MsgBox("voulez-vous modifier la fiche agent ?", vbYesNo + vbQuestion, "question")




'Si la combobox est vide la messageBox apparait
If ComboBox1.Value = "" Then
MsgBox ("veuillez remplir le champ : CIVILITE")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox2.Value = "" Then
MsgBox ("veuillez remplir le champ : NOM")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox3.Value = "" Then
MsgBox ("veuillez remplir le champ : PRENOM")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox4.Value = "" Then
MsgBox ("veuillez remplir le champ ")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox5.Value = "" Then
MsgBox ("veuillez remplir le champ : STATUT")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox6.Value = "" Then
MsgBox ("veuillez remplir le champ : N° de Téléphone Portable")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox7.Value = "" Then
MsgBox ("veuillez remplir le champ : N° de Téléphone Bureau")

'Si la combobox est vide la messageBox apparait
ElseIf ComboBox8.Value = "" Then
MsgBox ("veuillez remplir le champ : Date de Naissance")



'Sinon si je clique sur "oui"
ElseIf V_Boite = vbYes Then

'Je modifie les données dans l'onglet AGENTS
Sheets("Agents").Select 'selection de l'onglet Agents
no_ligne = ComboBox9.ListIndex + 2 'la variable = à la valeur de la ComboBox9 à partir de la 2ème ligne c-a-d B2
Cells(no_ligne, 1) = ComboBox1.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne CIVILITE
Cells(no_ligne, 2) = ComboBox2.Value
Cells(no_ligne, 3) = ComboBox3.Value
Cells(no_ligne, 4) = ComboBox4.Value
Cells(no_ligne, 5) = ComboBox5.Value
Cells(no_ligne, 6) = Format(ComboBox6.Value, "00"" ""00"" ""00"" ""00"" ""00")
Cells(no_ligne, 7) = Format(ComboBox7.Value, "00"" ""00"" ""00"" ""00"" ""00")
Cells(no_ligne, 8) = Format(ComboBox8.Value, "dddd d mmmm yyyy")


'Je modifie les données dans l'onglet
Sheets("Matériel").Select 'selection de l'onglet Matériel
no_ligne = ComboBox9.ListIndex + 3 'la variable = à la valeur de la ComboBox9 à partir de la 2ème ligne c-a-d A3
Cells(no_ligne, 1) = ComboBox2.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne NOM
Cells(no_ligne, 2) = ComboBox3.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne PRENOM


Sheets("Véhicule_Agent").Select 'selection de l'onglet Véhicule_Agent
no_ligne = ComboBox9.ListIndex + 2 'la variable = à la valeur de la ComboBox9 à partir de la 2ème ligne c-a-d A2
Cells(no_ligne, 1) = ComboBox2.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne NOM
Cells(no_ligne, 2) = ComboBox3.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne PRENOM


Sheets("Dotation").Select 'selection de l'onglet Matériel
no_ligne = ComboBox9.ListIndex + 3 'la variable = à la valeur de la ComboBox9 à partir de la 2ème ligne c-a-d A3
Cells(no_ligne, 1) = ComboBox2.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne NOM
Cells(no_ligne, 2) = ComboBox3.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne PRENOM


Sheets("Habilitation").Select 'selection de l'onglet Matériel
no_ligne = ComboBox9.ListIndex + 3 'la variable = à la valeur de la ComboBox9 à partir de la 2ème ligne c-a-d A3
Cells(no_ligne, 1) = ComboBox2.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne NOM
Cells(no_ligne, 2) = ComboBox3.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne PRENOM


Sheets("Formation").Select 'selection de l'onglet Matériel
no_ligne = ComboBox9.ListIndex + 3 'la variable = à la valeur de la ComboBox9 à partir de la 2ème ligne c-a-d A3
Cells(no_ligne, 1) = ComboBox2.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne NOM
Cells(no_ligne, 2) = ComboBox3.Value 'La variable "no_ligne" prend la valeur du numéro de la ligne concernée dans la feuille "Agents" et copie la ComboBox 1 dans le tableau dans la colonne PRENOM

'Je retourne dans l'onglet AGENTS
Sheets("Agents").Select 'selection de l'onglet Agents


'Je fais apparaître une fenêtre avec un message et un bouton OK
MsgBox ("la fiche agent a été modifié")





'J'appelle la fonction qui permet de trier les tableaux de toutes les feuilles sélectionnées
trier_tableau

'je raffraichis la ComboBox 8 avec la liste Nom de la feuille Agents
ComboBox9.List = Feuil3.Range("B2:B" & Feuil3.[A65000].End(3).Row).Value

'Je vide le champs de la ComboBox intitulée RECHERCHE
ComboBox9 = ""


'Sinon si je clique sur "non"
Else 'sinon
If Me.ComboBox9.ListIndex = -1 Then Exit Sub 'On sort si la réponse est non






End If
End If

End Sub

'*****************************************************************************************************************************************************
' => BOUTON
'11) PROCEDURE POUR SUPPRIMER UN AGENT"
'*****************************************************************************************************************************************************

Private Sub BtnSupprimerAgent_Click()

'DECLARATION DES VARIABLES
Dim LigneSelectionne As Integer ''Variable qui définie la ligne sélectionnée
Dim V_Boite 'variable pour la boite de message qui apparaît

'Une fenêtre de confirmation apparaît pour supprimer la fiche d'agent
V_Boite = MsgBox("voulez-vous supprimer la fiche agent ?", vbYesNo + vbQuestion, "question")

'Si je clique sur "oui"
If V_Boite = vbYes Then

'chercher la ligne selectionnée
LigneSelectionne = Me.ComboBox9.ListIndex + 2 'la variable prend la valeur de la ComboBox9 à partir de la 2ème ligne de la colonne B c-a-d B2
If Me.ComboBox9.ListCount >= 0 And LigneSelectionne > 0 Then
Feuil3.Rows(LigneSelectionne).Delete 'se place dans la feuille Agents et supprime la ligne qui est dans la variable "LigneSelectionne"

'Ici je supprime la ligne dans l'onglet MATERIEL
Feuil5.Rows(LigneSelectionne + 1).Delete 'se place dans la feuille Matériel et supprime la ligne qui est dans la variable "LigneSelectionne"

'Ici je supprime la ligne dans l'onglet Véhicule_Agent
Feuil6.Rows(LigneSelectionne + 1).Delete 'se place dans la feuille Véhicule_Agent et supprime la ligne qui est dans la variable "LigneSelectionne"

'Ici je supprime la ligne dans l'onglet DOTATION
Feuil7.Rows(LigneSelectionne + 1).Delete 'se place dans la feuille Dotation et supprime la ligne qui est dans la variable "LigneSelectionne"

'Ici je supprime la ligne dans l'onglet HABILITATION
Feuil8.Rows(LigneSelectionne + 1).Delete 'se place dans la feuille Habilitation et supprime la ligne qui est dans la variable "LigneSelectionne"

'Ici je supprime la ligne dans l'onglet FORMATION
Feuil9.Rows(LigneSelectionne + 1).Delete 'se place dans la feuille Formation et supprime la ligne qui est dans la variable "LigneSelectionne"

'Mise à jour de la TextBox contenant l'effectif des agents (pour ce faire je fais une soustraction)
TextEffectif = TextEffectif - 1

'Mise à jour de la combobox qui correspond à la liste déroulante
ComboBox9.List = Feuil3.Range("B2:B" & Feuil3.[A65000].End(3).Row).Value

'TOUS LES CHAMPS DE L'USERFOM SERONT SUPPRIMES SAUF LA TEXTBOX
ComboBox1 = "" 'Je vide le champs de la ComboBox intitulée CIVILITE
ComboBox2 = "" 'Je vide le champs de la ComboBox intitulée NOM
ComboBox3 = "" 'Je vide le champs de la ComboBox intitulée PRENOM
ComboBox4 = "" 'Je vide le champs de la ComboBox intitulée NNI
ComboBox5 = "" 'Je vide le champs de la ComboBox intitulée STATUT
ComboBox6 = "" 'Je vide le champs de la ComboBox intitulée TEL PORTABLE
ComboBox7 = "" 'Je vide le champs de la ComboBox intitulée TEL BUREAU
ComboBox8 = "" 'Je vide le champs de la ComboBox intitulée DATE DE NAISSANCE
ComboBox9 = "" 'Je vide le champs de la ComboBox intitulée RECHERCHE

'Je fais apparaître une fenêtre avec un message et un bouton OK
MsgBox ("la fiche agent a été supprimé")

'Sinon si je clique sur "non"
Else
If Me.ComboBox9.ListIndex = -1 Then Exit Sub 'On sort





End If

End If


'J'appelle la fonction qui permet de trier les tableaux de toutes les feuilles sélectionnées
trier_tableau


'Je retourne dans l'onglet "AGENTS"
Sheets("Agents").Activate


End Sub


MERCI POUR VOTRE AIDE
 

Staple1600

XLDnaute Barbatruc
Bonjour

Bien sur que tu peux joindre un fichier Exemple...
Mais évidemment pas le fichier original mais un fichier créé pour l'occasion
Il suffit pour cela d'y copier ton userform et de mettre des données bidons sur la feuille AGENTS
Exemple
AGENT1
AGENT2
AGENT3
etc...
ou NOM1 PRENOM1 ADRESSE1 CP1 VILLE1
Bref des données non confidentielles ;)

Conseil en passant pour finir
Entoure ton code VBA avec les balises BBCODE idoines
(voir ma signature ;)
pour rendre ton premier message plus agréable à lire.
 

Fariri

XLDnaute Junior
Bonjour

Bien sur que tu peux joindre un fichier Exemple...
Mais évidemment pas le fichier original mais un fichier créé pour l'occasion
Il suffit pour cela d'y copier ton userform et de mettre des données bidons sur la feuille AGENTS
Exemple
AGENT1
AGENT2
AGENT3
etc...
ou NOM1 PRENOM1 ADRESSE1 CP1 VILLE1
Bref des données non confidentielles ;)

Conseil en passant pour finir
Entoure ton code VBA avec les balises BBCODE idoines
(voir ma signature ;)
pour rendre ton premier message plus agréable à lire.
Bonsoir Staple

Tous d'abord, merci d'avoir pris le temps de me répondre.
Je ne peux pas envoyer mon fichier car je n'ai pas la main sur le fichier excel pour effacer certaines info (fichier entreprise)

Pourrais tu voir ce que tu peux arriver à faire avec les codes que j'ai mis ci-dessous (désolé, je n'ai pas d'autre choix :( )
merci
 

Staple1600

XLDnaute Barbatruc
Re

???
Rien de t’empêche de créer un fichier (à partir d'un classeur vierge)
Et dans ce classeur tout neuf copier l'userform et son code VBA (qui n'a rien de confidentiel puisqu'on peut le lire dans ton premier message ;) que d'ailleurs tu n'a pas le pris le temps d'éditer comme je te le conseillais précédemment. ;)
 

Fariri

XLDnaute Junior
Re

???
Rien de t’empêche de créer un fichier (à partir d'un classeur vierge)
Et dans ce classeur tout neuf copier l'userform et son code VBA (qui n'a rien de confidentiel puisqu'on peut le lire dans ton premier message ;) que d'ailleurs tu n'a pas le pris le temps d'éditer comme je te le conseillais précédemment. ;)
Voilà j'ai préparé un tit fichier, j'ai mis les explications dedans (par contre je n'ai pas réussi à enjoliver le code :oops: )

merci
 

Pièces jointes

  • - Gestion TEST.xlsm
    91.2 KB · Affichages: 44

Staple1600

XLDnaute Barbatruc
(par contre je n'ai pas réussi à enjoliver le code :oops: )

merci

J'avais pourtant évoqué ma signature dans laquelle on peut lire ;)
Enjolivez votre code VBA : utiliser l'éditeur de code intégré
(ou les balises BBCODE suivantes: [CODE=VB]Ici le code VBA[/CODE]
Merci pour le plaisir de nos yeux __________( ͡° ͜ʖ ͡°)

PS; Merci d'avoir pris le temps de créer un classeur exemple ;)
 

Staple1600

XLDnaute Barbatruc
Bonsoir

J'ai jeté un coup d'oeil
Et en attendant que d'autres en fassent de même, je propose (histoire de varier les plaisirs ;) )une autre syntaxe possible pour la procédure ci-dessous
Code:
Private Sub UserForm_Initialize()
Set f = Feuil3
ComboBox9.List = Range(f.Cells(2, 2), f.Cells(f.Rows.Count, 2).End(3)).Value
TextEffectif = ComboBox9.ListCount
End Sub

PS: Tu n'as toujours pas vu comment enjoliver ton code VBA dans ton 1er message ;) ? ;)
 

Fariri

XLDnaute Junior
Bonsoir

J'ai jeté un coup d'oeil
Et en attendant que d'autres en fassent de même, je propose (histoire de varier les plaisirs ;) )une autre syntaxe possible pour la procédure ci-dessous
Code:
Private Sub UserForm_Initialize()
Set f = Feuil3
ComboBox9.List = Range(f.Cells(2, 2), f.Cells(f.Rows.Count, 2).End(3)).Value
TextEffectif = ComboBox9.ListCount
End Sub

PS: Tu n'as toujours pas vu comment enjoliver ton code VBA dans ton 1er message ;) ? ;)
Merci, j'ai trouvé autre chose ! ;) Bonne journée ! :)
 

Discussions similaires

Réponses
0
Affichages
83