IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

If Then Else


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    chef d'atelier
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : chef d'atelier

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Par défaut If Then Else
    Bonjour à tous,
    Dans un précédent sujet, Theze m'a aidé à résoudre mon pb. Pour résumer, je lance une macro qui me permet de sélectionner un fichier où j'insère un onglet A dans lequel je viens coller des valeurs copiées dans des onglets existants B,C & D.

    Aujourd'hui, je suis confronté au pb suivant :
    Parfois un des onglets B,C ou D n'existe pas , j'opte donc pour la fonction "if" mais quelle est la syntaxe pour dire IF onglet B existe THEN continuer la macro ELSE passer à l'opération suivante ? et qu'est-ce qui défini l'opération suivante ( copier dans l'onglet C, puis D) ?

    Ou y a-t-il une autre solution plus efficace ?

    J'ai été aussi clair que possible même si je sens que c'est pas top

    D'avance merci

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 205
    Par défaut
    Bonjour,
    Tu peux utiliser cette fonction personnalisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Function WsExist(Nom$) As Boolean
    On Error Resume Next
    WsExist = Sheets(Nom).Index
    End Function
    ... Ensuite dans ton code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If WsExist("Feuill2") Then...
    A+

  3. #3
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, au choix
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    Function FeuilleExiste1(sNomFeuille As String, Optional Wkb As Workbook = Nothing) As Boolean
    Dim Ws As Worksheet
        FeuilleExiste1 = False
        If Wkb Is Nothing Then
            Set Wkb = ThisWorkbook
        End If
        For Each Ws In Wkb.Worksheets
            If Ws.Name = sNomFeuille Then
                FeuilleExiste1 = True
                Set Wkb = Nothing
                Exit For
            End If
        Next Ws
        Set Wkb = Nothing
    End Function
     
    Private Function FeuilleExiste2(ByVal sNom As String) As Boolean
        On Error Resume Next
        FeuilleExiste2 = Sheets(sNom).Name <> ""
        Err.Clear
    End Function
     
    Function FeuilleExiste3(sNomFeuille As String) As Boolean
        FeuilleExiste3 = Not (IsError(Evaluate("='" & sNomFeuille & "'!A1")))
    End Function
     
    Function FeuilleExiste4(NomFeuille As String, Optional Classeur As Workbook = Nothing) As Boolean
    Dim Ws As Worksheet
        If Classeur Is Nothing Then Set Classeur = ThisWorkbook
        For Each Ws In Classeur.Worksheets
            If Ws.Name = NomFeuille Then
                FeuilleExiste4 = True
                Exit For
            End If
        Next Ws
    End Function
     
    Function FeuilleExiste5(ByVal sNom As String) As Boolean
    Dim Ws As Worksheet
        On Error Resume Next
        Set Ws = Worksheets(sNom)
        If Err.Number <> 0 Then FeuilleExiste5 = False Else FeuilleExiste5 = True
    End Function
     
    Function FeuilleExiste6(sFeuille As String) As Boolean
        FeuilleExiste6 = Evaluate("ISREF('" & sFeuille & "'!A1)")
    End Function

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    chef d'atelier
    Inscrit en
    Avril 2016
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : chef d'atelier

    Informations forums :
    Inscription : Avril 2016
    Messages : 6
    Par défaut
    Bon déjà merci à vous 2, j'y regarde de plus près asap.

    Cependant, je ferais la même remarque qu'à Theze, pourriez vous, svp, mettre quelques explications à ces lignes ? Je ne demande pas un cours magistral mais 2 ou 3 infos sur le concept et la syntaxe seraient sympa
    Quoi qu'il en soit, merci encore

  5. #5
    Expert confirmé
    Avatar de kiki29
    Homme Profil pro
    ex Observeur CGG / Analyste prog.
    Inscrit en
    Juin 2006
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : ex Observeur CGG / Analyste prog.

    Informations forums :
    Inscription : Juin 2006
    Messages : 6 132
    Par défaut
    Salut, pour cela il y a les FAQs, tutos et autres : Les fonctions personnelles dans Excel

Discussions similaires

  1. recherche multiple (onglet different) dans excel
    Par xadocle dans le forum Excel
    Réponses: 4
    Dernier message: 21/08/2008, 16h21
  2. Rechercher un onglet via son nom
    Par Bubale dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 03/05/2008, 11h30
  3. Recherche de l'existence d'un intervalle
    Par LEK dans le forum SQL
    Réponses: 9
    Dernier message: 07/04/2007, 22h08
  4. [VBA-Excel] Vérifier si on un onglet existe dans un classeur
    Par marsupilami34 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 25/01/2007, 15h21
  5. Recherche FULL Text existe que dans MySql ?
    Par seb.49 dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 01/06/2004, 22h30

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo