Instruction for each

Bonjour ,

dans le fichier joint je dipose sur la feuille numerotés 105 un bouton qui me permet de verifier s'il y a correspondance

entre les numeros des onglets de ce meme fichier et la cellule A1 feuille 100 dans laquelle je saisi manuellement une valeur

mon code marche partiellement , mais je n'arrive pas à résoudre le bug concernant une variable que j'ai pourtant definie au debut de

ma macro .

en vous remerciant pour toute consultation du fichier et pour tout conseil

cordialement.

17verifier.zip (8.41 Ko)

Bonjour rocket4, le forum,

A première vue il suffit de remplacer

Dim feuille As objet

par

Dim feuille As Worksheet

Cordialement

Joseph

Bonsoir Rocket Joseph le forum

oui Joseph a raison mais moi j'ai une question, tu cherches si tu as une égalité et tu ne sorts pas de ta boucle en cas d'égalité???

à quoi sert donc cette vérification?? de plus comme tu testes sur les feuilles du classeurs il est évident que tu ne trouveras qu'une égalité possible puisque deux feuilles ne peuvent( pas avoir le même nom!!!!

Alors je redemande le but c'est quoi? si c'est de savoir si la feuille 100 existe? merci de le redire et on modifiera la macro

a+

papou

bonsoir

oui en effet c'est bien vrai , ce qui m'ennui c'est cette boucle qui passe en revu toute les feuilles pour arriver sur celle qui contient l'egalité j'avouerai qu'une solution pouvant eviter cela m'interesserais , mais je me demande bien si la postion du next dans le code

n'y est pas pour quelque chose ?


Eureka !!!! j'ai trouvé !!!!!

Sub verificateur()
Dim feuille As Worksheet

For Each feuille In Worksheets
If feuille.Name = Sheets("100").Range("A1") Then
MsgBox "egalité", vbOKOnly + vbInformation, "message"
Exit Sub
End If

Next

MsgBox "pas d'egalité", vbOKOnly + vbInformation, "message"

End Sub

finalement j'arrive à me surprendre parfois !


sans prétention il me reste du chemin à faire en vba

Salut le forum

Pour éviter de boucler sur les feuilles du classeur (un petite fonction)

Function FeuilleExiste(wk As Workbook, stFeuille) As Boolean
 On Error Resume Next
 FeuilleExiste = Not (wk.Sheets(stFeuille) Is Nothing)
End Function

Utilisation de la fonction

Sub MonTestDelaFonctionExiste()
  If FeuilleExiste(ThisWorkbook, Sheets("100").Range("A1")) Then
    MsgBox "la feuille existe"
   Else
    MsgBox "N'existe pas "
  End If
End Sub

Mytå

Merci pour ce message !! je vais voir ça de près ça pourrait être intéressant


bonjour

une dernière question relative à ce post , si je decide de comparer le numeros des onglets de mes feuilles de classeur à une plage admettons

(A1:A100) comment faire , parce que j'ai fait un essais en écrivant :

If feuille.Name = Sheets("100").Range("A1:A100") Then

j'ai justement une erreur detectée sur cette plage , je ne sais pas

trop comment y remedier

encor merci pour vos suggetions

Bonjour Rocket 4 le forum

dim cel as range
    cel = Sheets("100").Range("A1:A100").find(feuille.name)
if cel is nothing then Msgbox "Aucune Correspondance Trouvée"

a+

Papou

Merci Paritec , je vais adapter cela !

cordialement , Rocket

Rechercher des sujets similaires à "instruction each"