Probleme de constant plus constante et de recherche avec find
mod77
Messages postés
1320
Date d'inscription
Statut
Membre
Dernière intervention
-
mod77 Messages postés 1320 Date d'inscription Statut Membre Dernière intervention -
mod77 Messages postés 1320 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
Voici mon code
1er problème:
J'ai déclaré mes constantes debList et FinList dans "ThisWorbook" mais elles sont toujours vide lorsque je valide le bouton de commande (ValiderMandant) de mon formulaire. Alors je les ai redéclaré dans ma feuille mais rien ne change. c'est pourquoi je les déclare dans ma procédure. mais cela ne m'arrange pas du tout car j'en ai besoin dans tout mon classeur.
Alors comment dois-je faire svp?
2e problème: pourquoi le message d'erreur "erreur d'exécution 13" , pour la ligne en gras, svp?
Savoir dire NON est un devoir et une force! N'ayez pas peur! L'union fait la force!
Passez en résolu si ça l'est!
Voici mon code
Private Sub cbValiderMandant_Click()
Dim CelMandat As Range
Dim CeLot As Range
Dim NomMandat As String
Dim plage As string
'Saisie des coordonnées
'CelMandat = ActiveCell.Address
NomMandat = Range("F" & ActiveCell.Row).Value
FinList = 10
DebList = 6
plage = "C" & DebList & ":C" & FinList
'Cherche adresse du lot
If tbLot1 <> 0 Then
'Cherche adresse du lot n° 1
Set CeLot = Range(plage).Find(tbLot1, "C" & (DebList - 1), LookIn:=xlValues, LookAt:=xlWhole)
Range("N3") = CeLot 'pr controle
If CeLot Is Nothing Then
MsgBox "Lot Inconnu 1"
Exit Sub 'sortie ou sélection manuelle
End If
'Copie du nom
Range("M" & CeLot.Row).Value = NomMandat
End If
If tbLot2 <> 0 Then
'Cherche adresse du lot n° 2
Set CeLot = Range("C" & DebList & ":C" & FinList).Find(tbLot2.Value, "C" & DebList, xlValues, xlWhole)
If CeLot Is Nothing Then
MsgBox "Lot Inconnu 2"
Exit Sub 'sortie ou sélection manuelle
End If
'Copie du nom
Range("M" & CeLot.Row).Value = NomMandat
End If
If tbLot3 <> 0 Then
'Cherche adresse du mandant du lot n° 3
Set CeLot = Range("C" & DebList & ":C" & FinList).Find(tbLot3.Value, "C" & DebList, xlValues, xlWhole)
If CeLot Is Nothing Then
MsgBox "Lot Inconnu 3"
Exit Sub 'sortie ou sélection manuelle
End If
'Copie du nom
'Range("M" & CeLot.Row).Value = NomMandat
End If
'NoEvents = True
tbLot1.Text = ""
tbLot2.Text = ""
tbLot3.Text = ""
'NoEvents = False
Exit Sub
End Sub
1er problème:
J'ai déclaré mes constantes debList et FinList dans "ThisWorbook" mais elles sont toujours vide lorsque je valide le bouton de commande (ValiderMandant) de mon formulaire. Alors je les ai redéclaré dans ma feuille mais rien ne change. c'est pourquoi je les déclare dans ma procédure. mais cela ne m'arrange pas du tout car j'en ai besoin dans tout mon classeur.
Alors comment dois-je faire svp?
2e problème: pourquoi le message d'erreur "erreur d'exécution 13" , pour la ligne en gras, svp?
Savoir dire NON est un devoir et une force! N'ayez pas peur! L'union fait la force!
Passez en résolu si ça l'est!
1 réponse
-
Bonjour
Apparemment:Set CeLot = Range(plage).Find(tbLot1, range("C" & (DebList - 1)), LookIn:=xlValues, LookAt:=xlWhole)--
Michel-
merci michel_m !
En effet je n'ai pas compris comment quelle était la cellule de début de recherche du find! Il ne fallait pas que je retire 1 en fait!
et pour mon problème de constante, une idée svp?- quelle était la cellule de début de recherche du find! Il ne fallait pas que je retire 1
Surtout pas!
la fonction Find ignore la 1° cellule en haut (et à gauche) d'une plage ou alors il faut utiliser Find next ce qui complique à mon avis...
tes constantes finlist et deblist doivent ^tre déclarées en "public" dans un module standard et non dans thisworkbook
tes variables (ou constantes ?) tblot... sont déclarées où et quelles sont leurs valeurs ?
mais j'ai l'impression que tu nous dis pas tout....
-
-
-