Bonjour,
j'ai ce code que j'ai récupéré sur ce site qui fonctionne très bien et que surtout j'ai réussi à adapter à mon besoin dans un fichier de type base de données.
je voudrais et n'arrive pas à le faire évoluer pour qu'il ne prenne dans le combobox "Nom" (col.A nommé CB_nom) que ceux qui sont notés "présent" dans la colonne "Date de sortie" (M). l'idéal serait une case à cocher "Présent" qui permettrait de trier.
Et cerise sur le gâteau serait-il possible que les Combobox "type de suivi", "secteurs" et "accompagnateurs" permettent aussi de choisir.
dis autrement, si je choisi le secteur de st vallier, je ne veux obtenir avec le combobox "Nom" que les noms concernés par ce secteur. idem avec type de suivi et accompagnateurs.
j'espère avoir été clair. le fichier est un peu difficile à anonymiser mais si ma description n'est pas suffisante je me lance.
bonne journée @ tous,
cordialement
Marc
j'ai ce code que j'ai récupéré sur ce site qui fonctionne très bien et que surtout j'ai réussi à adapter à mon besoin dans un fichier de type base de données.
Code:
Option Explicit
'Thierry's Macro Démo sur www.excel-Donwloads.com, August 2003
Dim WS As Worksheet 'Variable pour un Objet Worksheet en PUBLIC pour tous les Controls de ce UserForm
Dim Nom As String 'Variable pour récupérer l'ancienne valeur pour le Bouton Modif
Dim Prenom As String 'idem
Dim adresse As String 'idem
Dim CP As String 'idem
Dim Ville As String 'idem
Dim Situ_fam As String 'idem
Dim tel As String 'idem
Dim mobile As String 'idem
Dim envoi_mdph As String 'idem
Dim employeur As String 'idem
Dim type_emploi As String 'idem
Dim sit_pro As String 'idem
Dim fin_cdaph As String 'idem
Dim sexe As String 'idem
Dim date_naissance As String 'idem
Dim tx_inval As String 'idem
Dim orien As String 'idem
Const T As String = " Base de données -SAVS Adapei26-"
Private Sub CB_origine_demande_Change()
End Sub
Private Sub CommandButton_enr_quit_Click()
Unload Me
End Sub
Private Sub imprimer_Click()
mask.PrintForm
End Sub
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'INITIALISATION DU USERFORM============================================================================
Private Sub UserForm_Initialize()
Me.Caption = T
Ini
End Sub
Private Sub Ini()
Dim CTRL As Control 'Variable pour la collection des controls
Dim L As Integer 'Variable pour connaitre le numéro de derniere ligne
Dim i As Integer 'Variable pour connaitre incrémenter les Data
'On Vide tous les Controls
For Each CTRL In Me.Controls
If TypeOf CTRL Is MSForms.TextBox Or TypeOf CTRL Is MSForms.ComboBox Then
CTRL = ""
End If
Next CTRL
Me.CB_nom.Clear 'On vide les précédentes données
Set WS = ThisWorkbook.Sheets("bd") 'On identifie l'objet pour la feuille de travail
L = WS.Range("A3000").End(xlUp).Row 'On identifie la dernière ligne en partant du bas
'Pour éviter les fash d'écran pour le select ci dessous
Application.ScreenUpdating = False
WS.Select 'On sélectionne la feuille sinon bug si elle ne l'est pas
WS.Range("A2").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess 'Le Sort
For i = 2 To L 'Boucle départ 2 (Ligne 2 de la feuille, jusqu'à dernière
With Me.CB_nom 'Avec la CB_nom
.AddItem WS.Range("A" & i) 'On ajoute dans la ComboBox toutes les valeurs, cellules après cellules
End With
Next i 'Next pour poursuivre la boucle pour le i suivant
Application.ScreenUpdating = True
End Sub
' A l'activation on démarre le focus sur la Première Combobox
Private Sub UserForm_Activate()
Me.CB_nom.SetFocus
End Sub
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'MISE A JOUR DES VALEURS DEPUIS LA CB_nom===========================================================
Private Sub CB_nom_Click()
If Me.CB_nom.ListIndex = -1 Then Exit Sub 'ON sort si pas de sélection
TB_prenom = WS.Range("B" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_naissance = WS.Range("C" & Me.CB_nom.ListIndex + 2) 'de l'index de la Combobox + 2 pour la ligne de Feuille
CB_situ_fam = WS.Range("AG" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_sexe = WS.Range("E" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_adresse = WS.Range("P" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_CP = WS.Range("Q" & Me.CB_nom.ListIndex + 2).Text
TB_ville = WS.Range("R" & Me.CB_nom.ListIndex + 2) ''On alimente les données correspondant à la ligne
TB_tel = WS.Range("S" & Me.CB_nom.ListIndex + 2).Text 'On alimente les données correspondant à la ligne
TB_mobile = WS.Range("T" & Me.CB_nom.ListIndex + 2).Text 'On alimente les données correspondant à la ligne
CB_sit_pro = WS.Range("AJ" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_employeur = WS.Range("Y" & Me.CB_nom.ListIndex + 2) 'de l'index de la Combobox + 2 pour la ligne de Feuille
CB_type_emploi = WS.Range("AK" & Me.CB_nom.ListIndex + 2) 'il ne faut pas se planter ici !! lol
CB_protec = WS.Range("U" & Me.CB_nom.ListIndex + 2) 'il ne faut pas se planter ici !! lol
CB_organisme = WS.Range("V" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_nom_tuteur = WS.Range("W" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_env_mdph = WS.Range("I" & Me.CB_nom.ListIndex + 2).Text ''On alimente les données correspondant à la ligne
TB_fin_cdaph = WS.Range("J" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_fin_as = WS.Range("K" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_N_cdaph = WS.Range("AC" & Me.CB_nom.ListIndex + 2) 'il ne faut pas se planter ici !! lol
TB_N_secu = WS.Range("Z" & Me.CB_nom.ListIndex + 2).Text 'On alimente les données correspondant à la ligne
TB_caf = WS.Range("AD" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_adresse_secu = WS.Range("AB" & Me.CB_nom.ListIndex + 2) ''On alimente les données correspondant à la ligne
TB_mut = WS.Range("AE" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_adresse_mut = WS.Range("AF" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_type_suivi = WS.Range("X" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_secteur = WS.Range("F" & Me.CB_nom.ListIndex + 2) 'de l'index de la Combobox + 2 pour la ligne de Feuille
CB_accomp = WS.Range("G" & Me.CB_nom.ListIndex + 2) 'il ne faut pas se planter ici !! lol
TB_date_entree = WS.Range("L" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_date_sortie = WS.Range("M" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_typesortie = WS.Range("O" & Me.CB_nom.ListIndex + 2) ''On alimente les données correspondant à la ligne
CB_def = WS.Range("AL" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_origine_demande = WS.Range("AH" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_age = WS.Range("D" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_orga_demande = WS.Range("AM" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_nom_demande = WS.Range("AN" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_pers_ressource = WS.Range("AQ" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_coordo_pers_ressource = WS.Range("AR" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_logt = WS.Range("AO" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_ressources = WS.Range("AV" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_ressources = WS.Range("AW" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_tx = WS.Range("AY" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
CB_orien = WS.Range("AX" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
TB_commentaire = WS.Range("H" & Me.CB_nom.ListIndex + 2) 'On alimente les données correspondant à la ligne
'ici on initialise les Variable pour mémoriser le valeur précédente en cas de Modif
With Me
Nom = .CB_nom
Prenom = .TB_prenom
adresse = .TB_adresse
CP = .TB_CP
End With
End Sub
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'AJOUT DE VALEUR DU USERFORM===========================================================================
Private Sub CmdAjouter_Click()
Dim CTRL As Control 'Variable pour la collection des controls
Dim L As Integer 'Variable pour connaitre le numéro de derniere ligne vide
Dim X As Integer, i As Integer 'Variables pour faire la boucle de checking de Duplication
Dim Response As Byte
Dim Match As Byte
L = WS.Range("A65536").End(xlUp).Row + 1 ' On identifie la dernière ligne vide en partant du bas
'ici un Control de Duplication
For X = 2 To L
If CB_nom = WS.Range("A" & X) Then
Match = Match + 1: i = X
End If
Next X
'Si il y a Duplication on demande en montrant les détails de la Duplication
If Match > 0 Then
Response = MsgBox("Duplication trouvée dans la BD pour : " & CB_nom & vbCrLf & _
"Nom : " & vbTab & vbTab & WS.Cells(i, 1) & vbCrLf & _
"Date de naissance: " & vbTab & vbTab & WS.Cells(i, 3) & vbCrLf & _
"Prenom : " & vbTab & vbTab & WS.Cells(i, 2) & vbCrLf & _
"Adresse : " & vbTab & vbTab & WS.Cells(i, 16) & vbCrLf & _
"C/Postal : " & vbTab & WS.Cells(i, 17) & vbCrLf & _
"Voulez-Vous Intégrer cet enregistrement ?", vbQuestion + vbOKCancel, T & " DUPLICATION " & CB_nom)
If Response = 1 Then
GoTo Suite 'On suit le déroulement si réponse OK
Else: GoTo Fin 'Sinon On sort
End If
End If
Suite:
'ici avec la Feuille on va faire :
With WS
.Range("A" & L) = CB_nom ' On écrit dans chaque colonne les valeurs des différents controls
.Range("B" & L) = TB_prenom ' Idem
If IsDate(TB_naissance.Text) Then '<<<<<============
.Range("C" & L).NumberFormat = "dd/mm/yyyy"
.Range("C" & L) = CDate(TB_naissance.Text)
.Range("C" & L).NumberFormat = "dd/mm/yyyy"
End If
.Range("AG" & L) = CB_situ_fam ' Idem
.Range("E" & L) = CB_sexe ' Idem
.Range("P" & L) = TB_adresse ' Idem
.Range("H" & L) = TB_commentaire ' Idem
.Range("Q" & L) = (TB_CP.Text)
.Range("Q" & L).NumberFormat = "00 000"
.Range("R" & L) = TB_ville ' Idem
.Range("S" & L) = (TB_tel.Text)
.Range("S" & L).NumberFormat = "00 00 00 00 00"
.Range("T" & L) = (TB_mobile.Text)
.Range("T" & L).NumberFormat = "00 00 00 00 00"
.Range("AJ" & L) = CB_sit_pro ' Idem
.Range("Y" & L) = TB_employeur ' Idem
.Range("AK" & L) = CB_type_emploi ' Idem
.Range("U" & L) = CB_protec ' Idem
.Range("V" & L) = CB_organisme ' Idem
.Range("W" & L) = TB_nom_tuteur ' Idem
If IsDate(TB_env_mdph.Text) Then '<<<<<============
.Range("I" & L).NumberFormat = "dd/mm/yyyy"
.Range("I" & L) = CDate(TB_env_mdph.Text)
.Range("I" & L).NumberFormat = "dd/mm/yyyy"
End If
If IsDate(TB_fin_cdaph.Text) Then '<<<<<============
.Range("J" & L).NumberFormat = "dd/mm/yyyy"
.Range("J" & L) = CDate(TB_fin_cdaph.Text)
.Range("J" & L).NumberFormat = "dd/mm/yyyy"
End If
If IsDate(TB_fin_as.Text) Then '<<<<<============
.Range("K" & L).NumberFormat = "dd/mm/yyyy"
.Range("K" & L) = CDate(TB_fin_as.Text)
.Range("K" & L).NumberFormat = "dd/mm/yyyy"
End If
.Range("AC" & L) = TB_N_cdaph ' Idem
.Range("Z" & L) = TB_N_secu ' Idem
.Range("Z" & L) = (TB_N_secu.Text)
.Range("Z" & L).NumberFormat = "0 00 00 00 000 000 (00)"
.Range("AB" & L) = TB_adresse_secu ' Idem
.Range("AE" & L) = TB_mut ' Idem
.Range("AF" & L) = TB_adresse_mut ' Idem
.Range("X" & L) = CB_type_suivi ' Idem
.Range("F" & L) = CB_secteur ' Idem
.Range("G" & L) = CB_accomp ' Idem
If IsDate(TB_date_entree.Text) Then '<<<<<============
.Range("L" & L).NumberFormat = "dd/mm/yyyy"
.Range("L" & L) = CDate(TB_date_entree.Text)
.Range("L" & L).NumberFormat = "dd/mm/yyyy"
End If
With Range("M" & L)
If IsDate(TB_date_sortie.Text) Or Val(TB_date_sortie.Text) > 0 Then
.Value = CDate(TB_date_sortie.Text)
.NumberFormat = "dd/mm/yyyy"
Else
.Value = TB_date_sortie.Text
End If
End With
.Range("O" & L) = CB_typesortie ' Idem
.Range("AL" & L) = CB_def ' Idem
.Range("AH" & L) = CB_origine_demande ' Idem
.Range("AD" & L) = TB_caf
.Range("AM" & L) = TB_orga_demande 'idem
.Range("AN" & L) = TB_nom_demande 'idem
.Range("AQ" & L) = TB_pers_ressource 'idem
.Range("AR" & L) = TB_coordo_pers_ressource 'idem
.Range("AO" & L) = CB_logt ' Idem
.Range("AV" & L) = CB_ressources ' Idem
.Range("AW" & L) = TB_ressources ' Idem
.Range("AY" & L) = CB_tx ' Idem
.Range("AX" & L) = CB_orien ' Idem
End With
Ini 'On lance la réinitialisation du UserForm (Macro en haut du Module)
Fin:
End Sub
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'MODIFICATION DE VALEUR DU USERFORM====================================================================
Private Sub CmdModif_Click()
Dim CTRL As Control 'Variable pour la collection des controls
Dim i As Integer
Dim Response As Byte
'Si le User tente de change le nom de la ComboBox en Mode Modification
If Me.CB_nom.ListIndex = -1 Then
MsgBox "Attention comme dans toute Base de Données, le Nom est la Clef de L'enregistrement" & vbCrLf & _
"Ce qui implique que vous ne pouvez pas Modifier cette Clef. " & vbCrLf & _
"Par conséquent pour un changement de Nom vous devez Supprimer l'enregistrement", vbCritical, T & " Warning System Integrity"
Exit Sub 'ON sort si pas de sélection
End If
'Ici un message demandant d'accepter les changement en les listant
Response = MsgBox("Les coordonnées de " & vbCrLf & vbCrLf & _
"Old Nom : " & vbTab & Nom & vbCrLf & _
"New Nom : " & vbTab & CB_nom & vbCrLf & vbCrLf & _
"Old Prénom : " & vbTab & Prenom & vbCrLf & _
"New Prénom : " & vbTab & TB_prenom & vbCrLf & vbCrLf & _
"Old Adresse : " & vbTab & adresse & vbCrLf & _
"New Adresse : " & vbTab & TB_adresse & vbCrLf & vbCrLf & _
"Old C/Postal : " & vbTab & CP & vbCrLf & _
"New C/Postal : " & vbTab & TB_CP & vbCrLf & vbCrLf & _
"ancienne date : " & vbTab & date_naissance & vbCrLf & _
"Nouv. date : " & vbTab & TB_naissance & vbCrLf & vbCrLf & _
"Acceptez vous ces changements ? ", vbQuestion + vbOKCancel, T & " Modification de : " & Nom)
'Si Réponse OK on continue
If Response = 1 Then
'ici avec la Feuille on va faire :
With WS
.Range("A" & Me.CB_nom.ListIndex + 2) = CB_nom 'On écrit dans chaque colonne les valeurs des différents controls
.Range("B" & Me.CB_nom.ListIndex + 2) = TB_prenom 'Idem
If IsDate(TB_naissance.Text) Then '<<<<<============
.Range("C" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
.Range("C" & Me.CB_nom.ListIndex + 2) = CDate(TB_naissance.Text)
.Range("C" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
End If
.Range("AG" & Me.CB_nom.ListIndex + 2) = CB_situ_fam 'Idem
.Range("E" & Me.CB_nom.ListIndex + 2) = CB_sexe ' Idem
.Range("P" & Me.CB_nom.ListIndex + 2) = TB_adresse ' Idem
.Range("H" & Me.CB_nom.ListIndex + 2) = TB_commentaire ' Idem
.Range("Q" & Me.CB_nom.ListIndex + 2) = (TB_CP.Text)
.Range("Q" & Me.CB_nom.ListIndex + 2).NumberFormat = "00 000"
.Range("R" & Me.CB_nom.ListIndex + 2) = TB_ville ' Idem
.Range("S" & Me.CB_nom.ListIndex + 2) = (TB_tel.Text)
.Range("S" & Me.CB_nom.ListIndex + 2).NumberFormat = "00 00 00 00 00"
.Range("T" & Me.CB_nom.ListIndex + 2) = (TB_mobile.Text)
.Range("T" & Me.CB_nom.ListIndex + 2).NumberFormat = "00 00 00 00 00"
.Range("AJ" & Me.CB_nom.ListIndex + 2) = CB_sit_pro ' Idem
.Range("Y" & Me.CB_nom.ListIndex + 2) = TB_employeur ' Idem
.Range("AK" & Me.CB_nom.ListIndex + 2) = CB_type_emploi ' Idem
.Range("U" & Me.CB_nom.ListIndex + 2) = CB_protec ' Idem
.Range("V" & Me.CB_nom.ListIndex + 2) = CB_organisme ' Idem
.Range("W" & Me.CB_nom.ListIndex + 2) = TB_nom_tuteur ' Idem
If IsDate(TB_env_mdph.Text) Then '<<<<<============
.Range("I" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
.Range("I" & Me.CB_nom.ListIndex + 2) = CDate(TB_env_mdph.Text)
.Range("I" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
End If
If IsDate(TB_fin_cdaph.Text) Then '<<<<<============
.Range("J" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
.Range("J" & Me.CB_nom.ListIndex + 2) = CDate(TB_fin_cdaph.Text)
.Range("J" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
End If
If IsDate(TB_fin_as.Text) Then '<<<<<============
.Range("K" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
.Range("K" & Me.CB_nom.ListIndex + 2) = CDate(TB_fin_as.Text)
.Range("K" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
End If
.Range("AC" & Me.CB_nom.ListIndex + 2) = TB_N_cdaph ' Idem
.Range("Z" & Me.CB_nom.ListIndex + 2) = (TB_N_secu.Text)
.Range("Z" & Me.CB_nom.ListIndex + 2).NumberFormat = "0 00 00 00 000 000 (00)"
.Range("AB" & Me.CB_nom.ListIndex + 2) = TB_adresse_secu ' Idem
.Range("AE" & Me.CB_nom.ListIndex + 2) = TB_mut ' Idem
.Range("AF" & Me.CB_nom.ListIndex + 2) = TB_adresse_mut ' Idem
.Range("X" & Me.CB_nom.ListIndex + 2) = CB_type_suivi ' Idem
.Range("F" & Me.CB_nom.ListIndex + 2) = CB_secteur ' Idem
.Range("G" & Me.CB_nom.ListIndex + 2) = CB_accomp ' Idem
If IsDate(TB_date_entree.Text) Then '<<<<<============
.Range("L" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
.Range("L" & Me.CB_nom.ListIndex + 2) = CDate(TB_date_entree.Text)
.Range("L" & Me.CB_nom.ListIndex + 2).NumberFormat = "dd/mm/yyyy"
End If
With Range("M" & Me.CB_nom.ListIndex + 2)
If IsDate(TB_date_sortie.Text) Or Val(TB_date_sortie.Text) > 0 Then
.Value = CDate(TB_date_sortie.Text)
.NumberFormat = "dd/mm/yyyy"
Else
.Value = TB_date_sortie
End If
End With
.Range("O" & Me.CB_nom.ListIndex + 2) = CB_typesortie ' Idem
.Range("AL" & Me.CB_nom.ListIndex + 2) = CB_def ' Idem
.Range("AH" & Me.CB_nom.ListIndex + 2) = CB_origine_demande ' Idem
.Range("AD" & Me.CB_nom.ListIndex + 2) = TB_caf
.Range("AM" & Me.CB_nom.ListIndex + 2) = TB_orga_demande 'idem
.Range("AN" & Me.CB_nom.ListIndex + 2) = TB_nom_demande 'idem
.Range("AQ" & Me.CB_nom.ListIndex + 2) = TB_pers_ressource 'idem
.Range("AR" & Me.CB_nom.ListIndex + 2) = TB_coordo_pers_ressource 'idem
.Range("AO" & Me.CB_nom.ListIndex + 2) = CB_logt ' Idem
.Range("AV" & Me.CB_nom.ListIndex + 2) = CB_ressources ' Idem
.Range("AW" & Me.CB_nom.ListIndex + 2) = TB_ressources
.Range("AY" & Me.CB_nom.ListIndex + 2) = CB_tx ' Idem
.Range("AX" & Me.CB_nom.ListIndex + 2) = CB_orien ' Idem
End With
'On envoie un message de confirmation
MsgBox "Opération accomplie", vbInformation, T
Ini 'On lance la réinitialisation du UserForm (Macro en haut du Module)
'Si Réponse Annulation on envoie un message et on a rien fait
Else: MsgBox "Opération annulée", vbInformation, T
End If
End Sub
'++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
'SUPPRESSION DE VALEUR DU USERFORM====================================================================
Private Sub CmdSupprimer_Click()
Dim CTRL As Control 'Variable pour la collection des controls
Dim i As Integer
Dim Response As Byte
'Ici un message demandant d'accepter la suppression en les listant
Response = MsgBox("Les coordonnées de " & vbCrLf & vbCrLf & _
"Nom : " & vbTab & vbTab & CB_nom & vbCrLf & vbCrLf & _
"New Prénom : " & vbTab & TB_prenom & vbCrLf & vbCrLf & _
"New Adresse : " & vbTab & TB_adresse & vbCrLf & vbCrLf & _
"New C/Postal : " & vbTab & TB_CP & vbCrLf & vbCrLf & _
"Vont être définitivement Supprimées ? ", vbCritical + vbOKCancel, T & " SUPPRESSION de : " & Nom)
'Si Réponse OK on continue
If Response = 1 Then
'ici avec la Feuille on va faire :
With WS
.Rows(Me.CB_nom.ListIndex + 2).EntireRow.Delete
End With
'On evoie un message de confirmation
MsgBox "Opération accomplie", vbInformation, T
Ini 'On lance la réinitialisation du UserForm (Macro en haut du Module)
'Si Réponse Annulation on envoie un message et on a rien fait
Else: MsgBox "Opération annulée", vbInformation, T
End If
End Sub
je voudrais et n'arrive pas à le faire évoluer pour qu'il ne prenne dans le combobox "Nom" (col.A nommé CB_nom) que ceux qui sont notés "présent" dans la colonne "Date de sortie" (M). l'idéal serait une case à cocher "Présent" qui permettrait de trier.
Et cerise sur le gâteau serait-il possible que les Combobox "type de suivi", "secteurs" et "accompagnateurs" permettent aussi de choisir.
dis autrement, si je choisi le secteur de st vallier, je ne veux obtenir avec le combobox "Nom" que les noms concernés par ce secteur. idem avec type de suivi et accompagnateurs.
j'espère avoir été clair. le fichier est un peu difficile à anonymiser mais si ma description n'est pas suffisante je me lance.
bonne journée @ tous,
cordialement
Marc