InputBox qui ne s'affiche pas

Bonsoir à tous,

Je veux avant l'affichage de mon userform "FormModif" l'ouverture d'une "InputBox" de sélection de l'ID à modifier, mais elle ne s'affiche pas, je ne comprend pas pourquoi...

Y-a-t'il une bonne âme pour me sortir de là...?

Mon code:

Option Explicit

Public LeID As Integer

Public AdresseTrouvee As Integer

Private Sub Annulation_Click()

End

End Sub

Private Sub UserForm_Initialize()

Dim i As Integer

i = 1

Do While Worksheets("Feuil1").Cells(i, 1) <> ""

ComboVille.AddItem Worksheets("Feuil1").Cells(i, 1)

i = i + 1

Loop

End Sub

Private Sub Modification_Click()

''''''Sheets(2).Unprotect

Dim i As Integer

With ThisWorkbook.Sheets("Feuil2")

i = AdresseTrouvee

.Range("B" & i).Value = Me.TBoxNom.Value

.Range("C" & i).Value = Me.TBoxPrenom.Value

.Range("D" & i).Value = Me.TBoxTelFixe.Value

.Range("E" & i).Value = Me.TBoxTelMobile.Value

.Range("F" & i).Value = Me.TBoxAdresse.Value

.Range("G" & i).Value = Me.ComboVille.Value

.Range("H" & i).Value = Me.TBoxCodPost.Value

End With

Unload Me

End Sub

Private Sub FormModif_Initialize()

Dim i As Integer

Dim PlageDeRecherche As Range

Dim Trouve As Range

Dim Valeur_Cherchee As String

On Error Resume Next

' demande le ID à rechercher

LeID = InputBox("Quel ID voulez-vous modifier ? ")

' dans quel feuille

With ThisWorkbook.Sheets("Feuil2")

'dans la première colonne de la feuille active

Set PlageDeRecherche = .Columns(1)

'*******************************

'méthode find, ici on cherche la valeur exacte (LookAt:=xlWhole)

Set Trouve = PlageDeRecherche.Cells.Find(what:=LeID, LookAt:=xlWhole)

'traitement de l'erreur possible : Si on ne trouve rien :

If Trouve Is Nothing Then

'ici, traitement pour le cas où la valeur n'est pas trouvée

MsgBox " Le ID " & LeID & " n'est pas présent dans la colonne " & PlageDeRecherche.Address

End

Else

'ici, traitement pour le cas où la valeur est trouvée

AdresseTrouvee = Trouve.Row

i = AdresseTrouvee

Me.TBoxNom.Value = .Range("B" & i).Value

Me.TBoxPrenom.Value = .Range("C" & i).Value

Me.TBoxTelFixe.Value = .Range("D" & i).Value

Me.TBoxTelMobile.Value = .Range("E" & i).Value

Me.TBoxAdresse.Value = .Range("F" & i).Value

Me.ComboVille.Value = .Range("G" & i).Value

Me.TBoxCodPost.Value = .Range("H" & i).Value

End If

End With

'vidage des variables

Set PlageDeRecherche = Nothing

Set Trouve = Nothing

''''''Sheets(2).Protect

End Sub

Merci de votre aide

atlonia, le forum,

Private Sub FormModif_Initialize() n'est pas une macro qui s'exécute automatiquement à l'ouverture du formulaire.

C'est Private Sub UserForm_Initialize() qui s'exécute automatiquement à l'ouverture du formulaire.

Mais tu peux imbriquer une suite de macro.

Je te suggère de copier le nom de la macro "FormModif_Initialize" à la fin de la macro Private Sub UserForm_Initialize(), juste avant le "End Sub".

Puis ouvre ton formulaire, "UserForm_Initialize" va s'exécuter et lancer "FormModif_Initialize".

Bonne courage

LaCéline

Bonjour LaCeline,

Merci beaucoup Pour ta solution qui fonctionne parfaitement.

chaque jour j'avance un peu plus dans mon apprentissage grâce à vous tous

Peut-tu m'expliquer plus en détail, c'est encore un peu confus pour moi ?

atlonia, le forum.

Private Sub UserForm_Initialize() exécute automatiquement le code à l'ouverture du formulaire.

Initialize est réservé à Userform

Même si tu ajoutes _Initialize à une macro telle FormModif_Initialize, ça ne donnera rien de plus qu'une simple macro.

Entre dans le code du formulaire, puis regarde en haut les deux menus déroulants.

Celui de droite donne les macros possibles pour l'objet sélectionné dans le menu déroulant de gauche. Sélectionne un item à droite, remarque le nom de la macro créée. Fais quelques essais.

LaCéline

Rechercher des sujets similaires à "inputbox qui affiche pas"