Incompatibilité de type

Lameche15
Messages postés
155
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
29 décembre 2021
- Modifié le 4 déc. 2020 à 18:01
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
- 7 déc. 2020 à 11:22
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?

Merci d'avance

--

3 réponses

Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
Modifié le 4 déc. 2020 à 18:59
Bonjour,

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.
1
cs_Le Pivert
Messages postés
7784
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
24 juin 2022
129
4 déc. 2020 à 16:28
Bonjour,

Il faut déclarer ta variable numsem en Integer!
0
Lameche15
Messages postés
155
Date d'inscription
mardi 9 septembre 2008
Statut
Membre
Dernière intervention
29 décembre 2021

7 déc. 2020 à 08:36
Merci pour ce mini cours.
Je souhaite faire des efforts pour optimiser mes programmes.

A quoi sert Option EXplicit?

--
0
Patrice33740
Messages postés
8549
Date d'inscription
dimanche 13 juin 2010
Statut
Membre
Dernière intervention
7 mai 2022
21
7 déc. 2020 à 11:22
Ç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
0