Bonjour
Je n'arrive pas à comprendre pourquoi je n'arrive pas à rentrer dans ma boucle if.
Private Sub CommandButton1_Click()
Dim numsem, sem As Double
Dim adresse As Range
numsem = UserForm1.TextBox1
Range("D7:AH7").Select
For Each cell In Selection 'Récupération de la cellule correspondant au num semaine
If cell.Value = numsem Then
col = cell.Column
MsgBox "colonne: " & col & " numéro semaine: " & numsem
Else
MsgBox "Ce numéro de semaine n'existe pas " & numsem
End If
Next cell
UserForm1.Hide
UserForm1.TextBox1 = ""
End Sub
J'imagine que cell.value et numsem ne sont pas compatibles
Comment dois-je m'y prendre?
1) Toujours commencer ses modules par Option Explicit
2) Typer correctement les variables
3) Préciser la parentalité des range en particulier à partir d'un formulaire ou d'un module standard
4) Explorer toutes les possibilités avant d'afficher un résultat négatif
Par Exemple :
Option Explicit
Private Sub CommandButton1_Click()
Dim numSem As Integer, col as long
Dim cel As Range
numSem = CInt(UserForm1.TextBox1)
For Each cel In Worksheets("Feuil1").Range("D7:AH7") 'Adapter le nom de la feuille
If cel.Value = numSem Then col = cel.Column
Next cel
If col > 0 Then
MsgBox "colonne: " & col & " numéro semaine: " & numSem
Else
MsgBox "Ce numéro de semaine n'existe pas " & numSem
End If
UserForm1.Hide
UserForm1.TextBox1 = ""
End Sub
Cordialement
Patrice
Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.
Ça rend obligatoire la déclaration des variables, ce qui évite de nombreuse erreurs.
Le VBE (l'éditeur VBA) peut le faire automatiquement : Outils / Options, Cocher déclaration des variables obligatoires