Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

utilisation de FOR TO GOTO

  • Initiateur de la discussion Initiateur de la discussion natorp
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

natorp

XLDnaute Barbatruc
re-bjr à tous et toutes
vu que je ne peux pas récupérer les codes de fichiers-joints je vous joins le code qui me pose problème actuellement :

Private Sub OK_Click()

Dim Lign As Byte

For DateClicked = "01/01/2009" To "31/01/2009"
GoTo step1

For DateClicked = "01/02/2009" To "28/02/2009"
GoTo step2

step1:
Sheets("Janvier").Activate
Lign = Sheets("Janvier").Range("b1000").End(xlUp).Row + 1

If (Sheets("Janvier").Cells(Lign, 10).Value = "x" And CheckBox1.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox1.Value = True Then Sheets("Janvier").Cells(Lign, 10).Value = "x"

If (Sheets("Janvier").Cells(Lign + 1, 10).Value = "x" And CheckBox2.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox2.Value = True Then Sheets("Janvier").Cells(Lign + 1, 10).Value = "x"

step2:
Sheets("Février").Activate
Lign = Sheets("Février").Range("b1000").End(xlUp).Row + 1

If (Sheets("Février").Cells(Lign, 10).Value = "x" And CheckBox1.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox1.Value = True Then Sheets("Février").Cells(Lign, 10).Value = "x"

If (Sheets("Février").Cells(Lign + 1, 10).Value = "x" And CheckBox2.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox2.Value = True Then Sheets("Février").Cells(Lign + 1, 10).Value = "x"

etc...

j'ai le message d'erreur suivant : "variable de contrôle For déjà utilisée" positionnée sur la deuxième ligne FOR

merci de votre aide
Gérard
 
Re : utilisation de FOR TO GOTO

Bonsoir Natorp,

Dans ce cas, tu peux utiliser Select case:

Code:
Select Case DateClicked
Case "01/01/2009" To "31/01/2009"
Sheets("Janvier").Activate
Lign = Sheets("Janvier").Range("b1000").End(xlUp).Row + 1
If (Sheets("Janvier").Cells(Lign, 10).Value = "x" And CheckBox1.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox1.Value = True Then Sheets("Janvier").Cells(Lign, 10).Value = "x"
If (Sheets("Janvier").Cells(Lign + 1, 10).Value = "x" And CheckBox2.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox2.Value = True Then Sheets("Janvier").Cells(Lign + 1, 10).Value = "x"
Case "01/02/2009" To "28/02/2009"
Sheets("Février").Activate
Lign = Sheets("Février").Range("b1000").End(xlUp).Row + 1
If (Sheets("Février").Cells(Lign, 10).Value = "x" And CheckBox1.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox1.Value = True Then Sheets("Février").Cells(Lign, 10).Value = "x"
If (Sheets("Février").Cells(Lign + 1, 10).Value = "x" And CheckBox2.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox2.Value = True Then Sheets("Février").Cells(Lign + 1, 10).Value = "x"
Case Else
End Select

Mais le code suivant est plus simple et évite de répéter les lignes:

Code:
NomF = Format(Dateclicked.Value, "mmmm")
Sheets("NomF").Activate
Lign = Sheets("NomF").Range("b1000").End(xlUp).Row + 1
If (Sheets("NomF").Cells(Lign, 10).Value = "x" And CheckBox1.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox1.Value = True Then Sheets("NomF").Cells(Lign, 10).Value = "x"
If (Sheets("NomF").Cells(Lign + 1, 10).Value = "x" And CheckBox2.Value = True) Then Resp = MsgBox("Attention : horaire déjà utilisé!", vbExclamation + vbOKOnly): Exit Sub
If CheckBox2.Value = True Then Sheets("NomF").Cells(Lign + 1, 10).Value = "x"

@+

Gael
 
Dernière édition:
Re : utilisation de FOR TO GOTO

Bonjour le fil, Gael, natorp

Ce qu'écrit Gael est très juste.

Par ailleurs, j'attire ton attention sur le fait suivant:
Code:
For [COLOR=Red][B]DateClicked [/B][/COLOR]= "01/01/2009" To "31/01/2009"
    ...
    For [COLOR=Red][B]DateClicked [/B][/COLOR]= "01/02/2009" To "28/02/2009"
Les 2 Variables "en rouge" doivent-être différentes, ex : DateClicked1 et DateClicked2, serait correct.

A plus
 
Re : utilisation de FOR TO GOTO

merci, mais de toute façon ça bloque tjrs avant sur l'objet requis
j'arrive pas à envoyer de fichier zippé
sorry, merci de chercher, moi je rentre chez moi et je poste le fichier
Sympa
 
Re : utilisation de FOR TO GOTO

suite...
en fait ça ne demande plus objet requis si l'on enlève le .value après dateclicked
par contre j'ai le message d'erreur : "l'indice n'appartient pas à la sélection" sur la ligne
Sheets("NomF").Activate, même si j'enlève les "

merci
 

Pièces jointes

Re : utilisation de FOR TO GOTO

Re,

Voir ma réponse dans ton autre Fil pour le fichier exemple.

Pour l'objet, c'est normal car NomF ne contient rien et Excel ne peut pas ouvrir de feuille.

NomF ne contient rien parceque le calendrier te renvoie la valeur Monthview1 et pas Dateclicked. le code correct est:

Code:
NomF = Format(MonthView1.Value, "mmmm")
Sheets(NomF).Activate

@+

Gael
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
3
Affichages
926
Réponses
9
Affichages
1 K
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…