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 :

Problème Select Case multiples


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut Problème Select Case multiples
    Bonjour Forum,

    Je bloque sur un select case

    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
    Option Explicit
     
    Private Sub Btnvalider_Click()
      Dim strChemin As String
      Dim strNomFic As String
      Dim Lg
     
      Application.ScreenUpdating = False
      Application.DisplayAlerts = False
      ' Si le nom du fichier n'est pas saisi, message alerte et on ne fait rien
      strNomFic = TextBox1.Value
      If strNomFic = "" Then
        MsgBox "Le nom du fichier doit être saisi", vbCritical, "Enregistrement impossible"
        Exit Sub
      End If
      If strChemin = "" Then strChemin = ThisWorkbook.Path
      ' Copie en Excel
      Select Case Sheets("47").Range("M1")
         Case "Vente Janvier"
         With Sheets("1")
        .Visible = xlSheetVisible
        .Copy
        .Visible = xlSheetHidden
        End With
         Case Else
           MsgBox "Page inexistante"
            Exit Sub
      End Select
            ActiveSheet.SaveAs strChemin & "\" & strNomFic
            ' Fermer le fichier sauvegardé
            ActiveWorkbook.Close
     
      Application.DisplayAlerts = True
      Application.ScreenUpdating = True
     
     
    End Sub
    Je souhaites modifier ma macro pour que si je selectionne Vente Février il aille me chercher la feuille 2 et si je sélectionne Vente Mars idem feuille 3 ect...

    En vous remerciant par avance car je bloque vraiement sur ce point

  2. #2
    Membre expérimenté
    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    673
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Conseil

    Informations forums :
    Inscription : Juin 2007
    Messages : 673
    Points : 1 580
    Points
    1 580
    Par défaut
    Bonjour,
    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
    Select Case Sheets("47").Range("M1")
         Case "Vente Janvier"
              With Sheets("1")
                  .Visible = xlSheetVisible
                  .Copy
                  .Visible = xlSheetHidden
             End With
         Case "Vente Février"
              With Sheets("2")
                  .Visible = xlSheetVisible
                  .Copy
                  .Visible = xlSheetHidden
             End With
         Case "Vente Mars"
              With Sheets("3")
                  .Visible = xlSheetVisible
                  .Copy
                  .Visible = xlSheetHidden
             End With
         '(...etc...)
         Case Else
              MsgBox "Page inexistante"
              Exit Sub
    End Select
    Par contre, est-ce que la macro est complète ? Je ne vois pas trop ce qu'elle fait, une feuille est sélectionnée et copiée mais jamais collée...

  3. #3
    Membre émérite Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 392
    Points : 2 985
    Points
    2 985
    Par défaut
    Bonjour,
    quelquechose comme ceci, par exemple
    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
      Dim sh as integer
    '....
     
    sh = 0
    Select Case Sheets("47").Range("M1")
         Case "Vente Janvier"
             sh  = 1
         Case "Vente Février"
            sh = 2
    '....
         Case "Vente Décembre"
           sh = 12
         Case else
           MsgBox "Page inexistante"
            Exit Sub
         end select
     
     
         With Sheets(sh)
            .Visible = xlSheetVisible
            .Copy
            .Visible = xlSheetHidden
        End With
     
    '....
    (\ _ /) Cordialement G@dz
    (='.'=)

    (")-(") Vous avez des neurones. Sollicitez-les. . Si vous êtes aidé, pensez à Voter.

  4. #4
    pgz
    pgz est déconnecté
    Expert éminent Avatar de pgz
    Homme Profil pro
    Développeur Office VBA
    Inscrit en
    Août 2005
    Messages
    3 692
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Office VBA
    Secteur : Conseil

    Informations forums :
    Inscription : Août 2005
    Messages : 3 692
    Points : 6 591
    Points
    6 591
    Par défaut
    Bonjour

    Citation Envoyé par tedo01 Voir le message
    Par contre, est-ce que la macro est complète ? Je ne vois pas trop ce qu'elle fait, une feuille est sélectionnée et copiée mais jamais collée...
    Attention, il s'agit de la méthode copy de l'objet Worksheet. Il n'y a pas de coller. Si les paramètres Before et after sont omis, la feuille est copiée dans un nouveau classeur.

    Cordialement,

    PGZ
    pluritas non est ponenda sine necessitate - Le rasoir d'Okham
    Ne jamais attribuer à la malignité ce que la stupidité peut expliquer -Le rasoir d'Hanlon

  5. #5
    Candidat au Club
    Inscrit en
    Novembre 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Novembre 2008
    Messages : 7
    Points : 4
    Points
    4
    Par défaut
    Plop tout le monde

    Merci à vous deux la macro fonctionne parfaitement en "multi case"

    Cette macro me sert à export une feuille vers un nouveau classeur (Fichier ci-joint)

    J'ai constaté un petit souci après l'export de la feuille la listbox se fige pendant environ 10 à 15 seconde et je vois vraiement pas pourquoi.

    Merci encore à vous
    Fichiers attachés Fichiers attachés
    • Type de fichier : xls exp.xls (117,5 Ko, 63 affichages)

Discussions similaires

  1. Problème SELECT, CASE et Group by
    Par Royd938 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 03/10/2014, 07h41
  2. Problème Select case ne prend pas en compte les données
    Par gogo850 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 29/06/2012, 10h42
  3. [VBA-E] Problème Select case
    Par jamelie dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 12/04/2007, 12h21
  4. [VB .NET] problème Select Case
    Par KrusK dans le forum VB.NET
    Réponses: 2
    Dernier message: 05/01/2007, 10h59
  5. []Problème avec un "Select Case" : Instructions et..
    Par Olun dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 07/09/2005, 13h32

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