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 :

passer à une autre feuille


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Par défaut passer à une autre feuille
    bjr à tous
    j'ai développer une macro dans vba excel dont le but est de comparer les problèmes avec les pièces de rechange et me donne un MsgBox lorsque j'active la feuille.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
    If Sh.Name <> "Récap" And Sh.Name <> "suiviWP" Then
        If Application.CountA(Range("d36:d41")) <> Application.CountA(Range("n51:n61")) Then
    MsgBox ("    " & Application.CountA(Range("d36:d41")) & "  Problème (s)" & vbCrLf _
    & "et " & Application.CountA(Range("n51:n61")) & "  Pièce (s) à changer")
        End If
    End If
    End Sub
    est ce que je peux avoir une macro qui me bloque si je veux passer à un autre feuille au quitter execl ( si bien sûr :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.CountA(Range("d36:d41")) <> Application.CountA(Range("n51:n61"))
    )
    merci infiniment.

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Je n'ai rien compris à ceci:
    Citation Envoyé par abouhossam Voir le message
    est ce que je peux avoir une macro qui me bloque
    Peux-tu expliquer ton problème de façon plus claire, stp?

  3. #3
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Par défaut
    si par exp je travail sur la feuille1 et je veux passer à la feuille2 === la macro compare Application.CountA(Range("d36:d41")) et Application.CountA(Range("n51:n61")) de la feuille1.
    si Application.CountA(Range("d36:d41")) <> Application.CountA(Range("n51:n61")) === je reste sur la feuille1 est je corrige l'erreur.
    merci à vous.

  4. #4
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Ah OK.

    Eh bien dans ce cas, je te propose de "forcer" l'activation de ta feuille 1 dans la procédure "Workbook_SheetActivate" si tes deux valeurs sont différentes, et d'annuler l'enregistrement (Cancel = True) dans la procédure "Workbook_BeforeClose" dans les même conditions.

    Normalement tu as maintenant assez d'éléments pour y arriver maintenant.

  5. #5
    Membre éclairé
    Inscrit en
    Février 2008
    Messages
    271
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 271
    Par défaut
    merci decondelite de ton aide.
    mais vraiment je n'ai pas bien compris
    peux tu m'expliquer un peu avec une macro stp.
    merci.

  6. #6
    Membre émérite
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    753
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 753
    Par défaut
    Eh bien je ne te donnerai pas tout: je n'aime pas donner du code tout cuit.
    En plus je me suis trompé c'est pas BeforeSave mais BeforeClose qu'il faut utiliser (un peu la tête dans les nuages sur ce coup-là).

    A placer dans le module "ThisWorkbook":
    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
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
        ' Le code à exécuter avant de quitter
        [...]
        Cancel = True ' à toi de trouver où le mettre
        [...]
    End Sub
     
    Private Sub Workbook_SheetActivate(ByVal Sh As Object)
        ' Le code à exécuter lors d'un changement de feuille
        [...]
        ' Forçage pour activer la feuille, à utiliser au bon endroit
        Application.EnableEvents = False
        Sheets("Récap").Activate
        Application.EnableEvents = True
        [...]
    End Sub
    Désolé, mais le reste du code tu devras le trouver toi-même: ça tombe plutôt sous le sens, surtout si tu as été capable de me sortir le code que tu as donné. Je tiens à ce que tu réfléchisse un peu.

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

Discussions similaires

  1. passer les résultats d'une feuille à une autre feuille
    Par methodman225 dans le forum Excel
    Réponses: 2
    Dernier message: 27/08/2008, 01h15
  2. Réponses: 1
    Dernier message: 17/10/2006, 17h37
  3. comment ouvrir une autre feuille a partir de la feuille principale?
    Par nh783 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 07/08/2006, 15h18
  4. [VBA-E]Copier une serie de cellules dans une autre feuille
    Par Tartenpion dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 10/03/2006, 17h23
  5. SetFOcus sur un contrôle d'une autre feuille d'un multipage
    Par MacGeol dans le forum VB 6 et antérieur
    Réponses: 29
    Dernier message: 07/09/2005, 09h37

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