Bonjour,
J'ai un userform (nommé "Menu") me permettant de rechercher un dossier (une ligne Excel en fait).
Pour cela j'ai fais :
texteBox3 de Menu : on entre un numéro de dossier puis OK sur CommandButton44 (oui, j'en ai beaucoup...)
En textbox4 de Menu, j'ai le nombre total de mes dossiers calculé par la procédure suivante :
Sub TotalDossiers()
Dim nbcells As Integer
nbcells = Application.WorksheetFunction.CountA(Feuil1.Range( "A:A")) – 1
‘ -1 car la ligne A contient l’entête des colonnes
Menu.TextBox4.Value = nbcells
End Sub
Le CommandButton44 de Menu déclenche la procédure suivante (c'est du code de "petit bras" soyez indulgents) :
------------------------------
Public Sub RechercheDossier()
Dim DossierTrouve As Range
Dim Ligne As Integer
Dim Dossier As String
Sheets("Feuil1").Select
Dossier = Menu.TextBox3.Value
If Dossier = "" Then
MsgBox "Entrer le numero du dossier recherché", 48, "Recherche d'un dossier"
Exit Sub
End If
If Not IsNumeric(Dossier) Then
MsgBox "Entrer le NUMERO du dossier recherché.", 48, "Recherche d'un dossier"
GoTo fin
End If
If Dossier = "0" Then
MsgBox "Le dossier 0 n'existe évidement pas !", 48, "Recherche d'un dossier"
Exit Sub
End If
If Dossier > Menu.TextBox4.Value Then
MsgBox "Ce Dossier n'est pas encore créé !", 48, "Recherche d'un dossier"
Exit Sub
End If
Set DossierTrouve = Range("Feuil1!A:A").Find(Dossier)
Ligne = DossierTrouve.Row
MsgBox ("Trouvé ligne :" & Ligne)
DossierTrouve.Select
Call AfficheDossierTrouve
End Sub
-------------------------
La procédure « AfficheDossierTrouve » me permet d'afficher un autre userform et de remplir les champs grâce à des lignes du type :
SuiviDossier.TextBox18.Value = ActiveCell.Offset(rowOffset:=0, columnOffset:=2).Value
Cela fonctionne bien.
LE PROBLEME :
la procédure RechercheDossier fonctionne parfaitement bien SAUF lorsque je rentre dans TextBox3 :
3
4
5
6
7
8
9
la messageBox me renvoie ""Ce Dossier n'est pas encore créé !"
Cela fonctionne parfaitement sur le dossier 1 ou le 10 et ce jusqu'au 26ème.
Le 27ème n'étant pas créé, cela me dit bien qu'il n'est pas créé ce qui est donc normal.
Je précise que j’ai bien entendu supprimé toutes mes lignes et les ai recrées, le problème se reproduit systématiquement de 3 à 9.
Avez-vous une idée du pourquoi du comment de ce mystère « Holmésien » ?
D'avance merci
EDIT :
En cherchant, cela vient probablement du fait que j'ai déclaré ma variable Dossier en String.
En Integer cela fonctionne.
Par contre, je ne m'explique pas pourquoi 1 ou 10 et les suivantes sont prises en compte en String...
De plus, en déclarant Dossier en Integer, je perd mon contrôle if dossier="" then... et mon controle If Not IsNumeric(Dossier) Then
Une petite aide s'il vous plait ?
J'ai un userform (nommé "Menu") me permettant de rechercher un dossier (une ligne Excel en fait).
Pour cela j'ai fais :
texteBox3 de Menu : on entre un numéro de dossier puis OK sur CommandButton44 (oui, j'en ai beaucoup...)
En textbox4 de Menu, j'ai le nombre total de mes dossiers calculé par la procédure suivante :
Sub TotalDossiers()
Dim nbcells As Integer
nbcells = Application.WorksheetFunction.CountA(Feuil1.Range( "A:A")) – 1
‘ -1 car la ligne A contient l’entête des colonnes
Menu.TextBox4.Value = nbcells
End Sub
Le CommandButton44 de Menu déclenche la procédure suivante (c'est du code de "petit bras" soyez indulgents) :
------------------------------
Public Sub RechercheDossier()
Dim DossierTrouve As Range
Dim Ligne As Integer
Dim Dossier As String
Sheets("Feuil1").Select
Dossier = Menu.TextBox3.Value
If Dossier = "" Then
MsgBox "Entrer le numero du dossier recherché", 48, "Recherche d'un dossier"
Exit Sub
End If
If Not IsNumeric(Dossier) Then
MsgBox "Entrer le NUMERO du dossier recherché.", 48, "Recherche d'un dossier"
GoTo fin
End If
If Dossier = "0" Then
MsgBox "Le dossier 0 n'existe évidement pas !", 48, "Recherche d'un dossier"
Exit Sub
End If
If Dossier > Menu.TextBox4.Value Then
MsgBox "Ce Dossier n'est pas encore créé !", 48, "Recherche d'un dossier"
Exit Sub
End If
Set DossierTrouve = Range("Feuil1!A:A").Find(Dossier)
Ligne = DossierTrouve.Row
MsgBox ("Trouvé ligne :" & Ligne)
DossierTrouve.Select
Call AfficheDossierTrouve
End Sub
-------------------------
La procédure « AfficheDossierTrouve » me permet d'afficher un autre userform et de remplir les champs grâce à des lignes du type :
SuiviDossier.TextBox18.Value = ActiveCell.Offset(rowOffset:=0, columnOffset:=2).Value
Cela fonctionne bien.
LE PROBLEME :
la procédure RechercheDossier fonctionne parfaitement bien SAUF lorsque je rentre dans TextBox3 :
3
4
5
6
7
8
9
la messageBox me renvoie ""Ce Dossier n'est pas encore créé !"
Cela fonctionne parfaitement sur le dossier 1 ou le 10 et ce jusqu'au 26ème.
Le 27ème n'étant pas créé, cela me dit bien qu'il n'est pas créé ce qui est donc normal.
Je précise que j’ai bien entendu supprimé toutes mes lignes et les ai recrées, le problème se reproduit systématiquement de 3 à 9.
Avez-vous une idée du pourquoi du comment de ce mystère « Holmésien » ?
D'avance merci
EDIT :
En cherchant, cela vient probablement du fait que j'ai déclaré ma variable Dossier en String.
En Integer cela fonctionne.
Par contre, je ne m'explique pas pourquoi 1 ou 10 et les suivantes sont prises en compte en String...
De plus, en déclarant Dossier en Integer, je perd mon contrôle if dossier="" then... et mon controle If Not IsNumeric(Dossier) Then
Une petite aide s'il vous plait ?
Dernière édition: