VBA : problème dans boucle For
Résolu/Fermé
Toshiii
Messages postés
10
Date d'inscription
mercredi 20 juillet 2011
Statut
Membre
Dernière intervention
10 septembre 2012
-
Modifié par Toshiii le 25/07/2011 à 22:46
Toshiii Messages postés 10 Date d'inscription mercredi 20 juillet 2011 Statut Membre Dernière intervention 10 septembre 2012 - 22 juil. 2011 à 12:44
Toshiii Messages postés 10 Date d'inscription mercredi 20 juillet 2011 Statut Membre Dernière intervention 10 septembre 2012 - 22 juil. 2011 à 12:44
A voir également:
- VBA : problème dans boucle For
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Mkdir vba ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Vba dépassement de capacité ✓ - Forum Excel
4 réponses
bonjour,
que tes boucles trouvent ou non, on passe systématiquement à l'extraction !
rajoute un indicateur et donne lui (par exemple) la valeur "true" si tu trouve . et juste après tes boucles tu testes ton indicateur:
si = true alors extraction
sinon message
(n'oublie pas de mettre ton indicateur à false en début de code )
Bonne suite
que tes boucles trouvent ou non, on passe systématiquement à l'extraction !
rajoute un indicateur et donne lui (par exemple) la valeur "true" si tu trouve . et juste après tes boucles tu testes ton indicateur:
si = true alors extraction
sinon message
(n'oublie pas de mettre ton indicateur à false en début de code )
Bonne suite
bonjour,
plusieurs choses:
-en sortie de boucle le booléen est il vrai ?
-salle : est ce une variable ou bien le mot recherché ?
si c'est le mot recherché mettre entre ""
si c'est une variable le contenu est peut-être différent des valeurs recherchées (espace ....)
-.FormulaR1C1 n'est utilisé que pour attribuer des formules , ici il faudrait :
Range("D2").Value = "salle inexistante"
si toujours des problèmes, peux tu déposer ton fichier (sans données confidentielles et au format 2003) sur http://www.cijoint.fr/ et mettre le lien fourni dans un prochain post.
A+
plusieurs choses:
-en sortie de boucle le booléen est il vrai ?
-salle : est ce une variable ou bien le mot recherché ?
si c'est le mot recherché mettre entre ""
si c'est une variable le contenu est peut-être différent des valeurs recherchées (espace ....)
-.FormulaR1C1 n'est utilisé que pour attribuer des formules , ici il faudrait :
Range("D2").Value = "salle inexistante"
si toujours des problèmes, peux tu déposer ton fichier (sans données confidentielles et au format 2003) sur http://www.cijoint.fr/ et mettre le lien fourni dans un prochain post.
A+
Toshiii
Messages postés
10
Date d'inscription
mercredi 20 juillet 2011
Statut
Membre
Dernière intervention
10 septembre 2012
22 juil. 2011 à 08:41
22 juil. 2011 à 08:41
Bnjour Paf,
j'ai essayé de faire ce que tu m'as dit :
dans ma boucle for j'ai rajouté un booléen qui se mets à TRUE si ma condition est vérifiée.
je teste cette condition à la fin de ma boucle, mais maintenant ma macro n'affiche plus rien et je ne comprends pas pourquoi !
Voici ce que j'ai fait :
Dim existence As Boolean
existence = False
'Rechercher la ligne correspondant au nom d'une salle dans une feuille
For x = 1 To 10
Workbooks("Equipements cfo.xls").Worksheets(x).Activate
For i = 458 To 5 Step -1
Cells(i, 2).Select
If Selection.Text = salle Then
existence = True
Rows(i).Select
Exit For
End If
Next i
Cells(i, 2).Select
If Selection.Text = salle Then
Exit For
End If
Next x
If existence = True Then
'Extraction des lignes dans un nouveau classeur
plage = "2:2," & i & ":" & i
Range(plage).Select
Selection.Copy
Workbooks("macro.xls").Activate
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Else
Range("D2").Select
ActiveCell.FormulaR1C1 = "salle inexistante"
End If
j'ai essayé de faire ce que tu m'as dit :
dans ma boucle for j'ai rajouté un booléen qui se mets à TRUE si ma condition est vérifiée.
je teste cette condition à la fin de ma boucle, mais maintenant ma macro n'affiche plus rien et je ne comprends pas pourquoi !
Voici ce que j'ai fait :
Dim existence As Boolean
existence = False
'Rechercher la ligne correspondant au nom d'une salle dans une feuille
For x = 1 To 10
Workbooks("Equipements cfo.xls").Worksheets(x).Activate
For i = 458 To 5 Step -1
Cells(i, 2).Select
If Selection.Text = salle Then
existence = True
Rows(i).Select
Exit For
End If
Next i
Cells(i, 2).Select
If Selection.Text = salle Then
Exit For
End If
Next x
If existence = True Then
'Extraction des lignes dans un nouveau classeur
plage = "2:2," & i & ":" & i
Range(plage).Select
Selection.Copy
Workbooks("macro.xls").Activate
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Else
Range("D2").Select
ActiveCell.FormulaR1C1 = "salle inexistante"
End If
Toshiii
Messages postés
10
Date d'inscription
mercredi 20 juillet 2011
Statut
Membre
Dernière intervention
10 septembre 2012
22 juil. 2011 à 12:44
22 juil. 2011 à 12:44
Re bonjour !
Ca marche sans problème !!
J'avais jsute mis le texte dans des mauvaises cases (car mon programme n'est pas fini) ce qui fait que les actions d'après effacaient/annulaient les premières actions !
En tout cas merci beaucoup Paf !!!! :)
Ca marche sans problème !!
J'avais jsute mis le texte dans des mauvaises cases (car mon programme n'est pas fini) ce qui fait que les actions d'après effacaient/annulaient les premières actions !
En tout cas merci beaucoup Paf !!!! :)