Ouvrir la feuille si elle existe sinon applique la macro

Bonjour à tous.

L'objectif est d'insérer dans un code la condition suivante:

si la feuille ("Coucou") existe, l'ouvrir, sinon, passer à la suite.

Or je n'ai pas trouvé la syntaxe de existe en VBA.

Merci de vos conseils avisés.

Bien cordialement à tous,

Elfi

Bonjour,

Sub test()
    On Error Resume Next
    Sheets("Coucou").Activate
    On Error GoTo 0
    Range("a1").Activate
End Sub

çà devrait suffire

Amicalement

Claude.

Bonjour Cher Claude,

toujour là quand on a besoin de toi!

merci pour la réponse rapide. A quoi correspond "range ("A1"). activate?

cordialement,

à te relire,

Elfi

En fait, c'est un peu plus compliqué:

dans l'appli, une feuille se crée avec un bouton (créer un nouvel état). La macro corrspondante recopie une feuille type intouchable nommée "base" et nomme cette copie "base(2)"

Ensuite une saisie est faite sur "base(2)" puis validée par un autre bouton (Validation). La macro correspondante renomme automatiquement la feuille "base(2)" en fonction d'éléments saisis (en l'occurence, ici des dates).

Donc, avec le bouton Validation, "base(2)" devient (par exemple) "du 01/01/09 au 31/01/09". (grace à un code de Nad-Dan).

Jusque là, ça va.

Le problème est qu'il arrive que des utilisateurs n'aient pas le temps de finir leur saisie avant de partir. Il sortent donc de l'appli et du coup, sans validation, c'est "Base (2)" qui reste.

La validation gérant aussi des cumuls, l'objectif est de forcer les utilisateurs soit à complêter, soit à valider leur dernière saisie avant la création d'une nouvelle feuille. C'est indispensable pour les cumuls.

D'ou le besoin de rechercher, à l'ouverture de l'appli "base (2) " si elle existe et d'imposer sa validation avant tout autre nouvelle saisie.

ci joint, copie du code en l'état actuel (Créer un nouvel état) ("Saisie (courants)") remplaçant (" base")

Sheets("Saisie (courants)").Visible = True

End Sub

Hum, j'espère que je suis pas trop compliqué.

Amicalement,

Elfi

Bonsoir Elfi,

Pas facile quand on est pas dans le bain !

Fais voir la macro du bouton "Validation"

le mieux serait le fichier, mais je suppose qu'il ne passera pas.

En gros, tant qu'on a pas valider, il faudrait supprimer la Sheets("Saisie (courants) (2)")

à la fermeture, c'est çà ?

à suivre

Claude.

bonjour Claude,

c'est pas tout à fait ça.

Quand on sort sans valider, la Sheets("saisie (courants)(2)") reste dans l'apli sans être renommée. Je voudrais que : dans ce cas, elle s'ouvre automatiquement quand on revient (elle peut contenir des donnéees saisies).

Quand on valide avant de sortir, elle est renommée. Du coup, c'est la macro Créer un nouvel état qui fonctionnerait quand on revient.

Pour le fichier, tu as raison, c'est trop gros. Quant à la marco valider, je t'en parle pas, elle est pire que créer. Ceci dit, si elle peut être utile pour trouver la solution, je te la copierai.

Merci et a+

amicalement,

Bonjour à tous,

Dans le ThisWoorkbook

Private Sub Workbook_Open()
Dim i As Byte, NbF
    NbF = Worksheets.Count
    For i = 1 To NbF
        If Worksheets(i).Name = "Saisie (courants) (2)" Then
            Worksheets(i).Activate
            MsgBox ("Reprise de l'appli. en cours")
            Exit For
        End If
    Next
End Sub

Amicalement

Claude

Merci Claude, cela devrait résoudre mon problème. Cependant, j'ai oublié de te préciser qu'à l'ouverture de l'appli, toutes les feuilles sont masquées sauf une feuille d'accueil. Pour que ton code fonctionne, il faudrait qu'on recherche au préalable dans les feuilles masquées la feuille "saisie (courants) (2)" et la dé-masquer.

une dernière petite idée?

D'avance merci,

a+

elfi

re,

Tu ajoute cette ligne sous le If

Worksheets(i).Visible = True

Claude

Yaouh!

Ca y est. Tu es arrivé à ce que je désirais.

Mille fois merci à toi.

Amicalement,

Elfi

Rechercher des sujets similaires à "ouvrir feuille existe sinon applique macro"