Condition si textebox.value est présent dans cellules séléctionnées

pepparkakor

XLDnaute Nouveau
C'est encore moi !

Je cherche maintenant a appliquer une action à un bouton si la valeur de mon textbox est présente dans ma séléction de cellules et à en appliquer une autre si la valeur de mon textbox n'est pas dans la séléction.

Je vous mets mon morceau de code ci-dessous. Le code en rouge pose problème :

Private Sub CommandButton4_Click()

Application.ScreenUpdating = False

Sheets("save_data").Visible = True
ActiveWorkbook.Sheets("save_data").Select
ActiveSheet.Unprotect

Columns("A:A").Select

If selection.Find(What:=TextBox1.Value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate = true then


If ActiveCell.Offset(0, 1) = "Rarement ou jamais" Then
Sheets("save_data").Visible = False
Sheets("Questio").Select
Application.ScreenUpdating = True
Unload UserForm1
UserForm3.Show
ElseIf ActiveCell.Offset(0, 3) = "" Then
Sheets("save_data").Visible = False
Sheets("Questio").Select
Application.ScreenUpdating = True
Unload UserForm1
UserForm_satisfaction.Show
Else: Sheets("save_data").Visible = False
Sheets("Questio").Select
Application.ScreenUpdating = True
Unload UserForm1
UserForm_End.Show

End If

Else: UserForm1.Hide
UserForm2.Show

End If
 

skoobi

XLDnaute Barbatruc
Re : Condition si textebox.value est présent dans cellules séléctionnées

Bonjour,

tu utilises mal la propriété Find.
Essaye comme ceci:

Code:
........
.........
Columns("A:A").Select
 
[B][COLOR=red]Set trouve = Selection.Find(What:=TextBox1.Value, After:=ActiveCell, LookIn:=xlFormulas, _[/COLOR][/B]
[B][COLOR=red]LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _[/COLOR][/B]
[B][COLOR=red]MatchCase:=False, SearchFormat:=False)[/COLOR][/B]
[B][COLOR=red]If Not trouve Is Nothing Then[/COLOR][/B]
   If [B][COLOR=red]trouve[/COLOR][/B].Offset(0, 1) = "Rarement ou jamais" Then
      Sheets("save_data").Visible = False
      Sheets("Questio").Select
      Application.ScreenUpdating = True
      Unload UserForm1
      UserForm3.Show
   ElseIf [B][COLOR=red]trouve[/COLOR][/B].Offset(0, 3) = "" Then
      Sheets("save_data").Visible = False
      Sheets("Questio").Select
      Application.ScreenUpdating = True
      Unload UserForm1
      UserForm_satisfaction.Show
   Else: Sheets("save_data").Visible = False
      Sheets("Questio").Select
      Application.ScreenUpdating = True
      Unload UserForm1
      UserForm_End.Show
   End If
Else: UserForm1.Hide
      UserForm2.Show
 
End If
.............
.............
............
 
Dernière édition:

Spitnolan08

XLDnaute Barbatruc
Re : Condition si textebox.value est présent dans cellules séléctionnées

Bonjour Pepparkakor, Skoobi,

Pas testé la proposition de Skoobi mais tu peux essayer ceci :
Code:
Private Sub CommandButton4_Click()
[COLOR=Blue]Dim AC As Range[/COLOR]
Application.ScreenUpdating = False

Sheets("save_data").Visible = True
ActiveWorkbook.Sheets("save_data").Select
ActiveSheet.Unprotect
[COLOR=Blue]Set AC = ActiveCell[/COLOR]

Columns("A:A").Select

If [COLOR=Blue]CStr(Selection.Find(What:=TextBox1.Value, After:=AC, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Value) = [/COLOR][COLOR=Blue]TextBox1.Value [/COLOR]Then
....
Qui fonctionne, mais nécessite (comme dans les autres cas) que ta sélection ne comporte qu'une seule cellule.

Ceci étant il serait plus simple dans des cas comme celui là que tu envoies un exemple plutôt qu'un bout de code:cool:

Cordialement
 
Dernière édition:

Discussions similaires

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 761
dernier inscrit
rouazali