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 :

VbCancel


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut VbCancel
    bonjour,

    je cherche a programmer une marco permettant de renommer les feuilles d'un classeur. voilà le code:

    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
    Sub RenommerFeuille()
        
        Dim maFeuilleCalcul As Worksheet
        Dim strPrompt As String, strResult As String
        Dim Compteur As Integer
        
        Compteur = 0
        strPrompt = "Veuillez saisir le nouveau nom de la feuille de calcul"
        
        For Each maFeuilleCalcul In Application.Worksheets
            strResult = InputBox(strPrompt & maFeuilleCalcul.Name)
            'maFeuilleCalcul.Name = strResult
                If vbCancel = True Then
                    Exit For
                ElseIf vbOK = True Then
                    maFeuilleCalcul.Name = strResult
                End If
            Compteur = Compteur + 1
        Next maFeuilleCalcul
        
        strPrompt = "Nombre total de feuilles de calcul renommées =" & Str$(Compteur)
        
        MsgBox strPrompt
            
    End Sub
    ça fonctionne assez bien mais une fois qu'on clique sur Annuler au lieu de OK ça me donne un déboguage , est ce que quelqu'un peut m'aider

    Merci d'avance

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Un simple petit test :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
            strResult = InputBox(strPrompt & maFeuilleCalcul.Name)
            if strResult = "" then exit for
    car inputbox renvoie "" quand on clique sur Annuler, je ne pense pas que tu puisses tester vbCancel ici.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    Bonjour,

    oui ça marche merci, mais moi en fait je veux pas qu'il s'arrete je veux qu'il passe a la prochaine feuille

    Merci en tout cas pour ta réponse ça ma trop aidé

  4. #4
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    J'ai édité mon premier post (pas assez vite sans doute) et ça devrait faire ce que tu veux.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    211
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 211
    Par défaut
    Citation Envoyé par neupont Voir le message
    J'ai édité mon premier post (pas assez vite sans doute) et ça devrait faire ce que tu veux.
    dsl mais j'ai rien compris de cette phrase

    parce que ca ne fait pas ce que je veux une fois que je clique sur annuler ben la boucle for s'arrete

  6. #6
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2006
    Messages
    288
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 288
    Par défaut
    Ah ok.
    J'avais vu un "exit for" dans ton code, j'ai cru que c'était ce que tu voulais.
    Ceci devrait mieux convenir :

    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
     
    Sub RenommerFeuille()
     
        Dim maFeuilleCalcul As Worksheet
        Dim strPrompt As String, strResult As String
        Dim Compteur As Integer
     
        Compteur = 0
        strPrompt = "Veuillez saisir le nouveau nom de la feuille de calcul "
     
        For Each maFeuilleCalcul In Application.Worksheets
            strResult = InputBox(strPrompt & maFeuilleCalcul.Name)
            if strResult <> "" then 
                maFeuilleCalcul.Name = strResult
                Compteur = Compteur + 1
            End If
     
        Next maFeuilleCalcul
     
        strPrompt = "Nombre total de feuilles de calcul renommées = " & Str$(Compteur)
     
        MsgBox strPrompt
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

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