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 :

Suppression .select en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Etd. Supply Chain Manager
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Etd. Supply Chain Manager
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut Suppression .select en VBA
    Bonjour à tous,

    Je viens à vous à la suite de recherche peu fructueuse sur le net pour améliorer une VBA et outre-passer le .select qui, aux topics consultés, ne feraient qu’alourdir les VBA.

    Ma VBA s'exprime ainsi et comme je débute, je mets beaucoup de commentaire pour comprendre ce que je fais.
    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
    Sub Détail_Commandes_CPT_REG()
     
        'Je rends visible le TCD caché
        Sheets("TCD caché").Visible = True
     
            'Je sélectionne les informations nécessaires
            Sheets("TCD caché").Select
            Range("C5").Select
                Selection.ShowDetail = True
     
            Sheets("TCD caché").Select
            Range("C7").Select
                Selection.ShowDetail = True
     
                'Je modifie le nom de la feuille
                Worksheets(2).Name = "Comptoirs non-rcp"
                Worksheets(3).Name = "Régul non-rcp"
     
        'Je masque à nouveau le TCD
        Sheets("TCD caché").Visible = False
     
    End Sub
    Je suis à votre écoute

  2. #2
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Voici un exemple de ce que tu peux faire
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     'Je sélectionne les informations nécessaires
            Sheets("TCD caché").Select
            Range("C5").Select
                Selection.ShowDetail = True
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     'Je sélectionne les informations nécessaires
            Sheets("TCD caché").Range("C5").ShowDetail = True

  3. #3
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 560
    Par défaut
    bonjour,
    pas vérifié la logique!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     'Je rends visible le TCD caché
        With Sheets("TCD caché")
            .Visible = True
            .Range("C5").ShowDetail = True
            .Visible = False
        End With

  4. #4
    Membre Expert
    Avatar de Igloobel
    Homme Profil pro
    Développeur ERP - VBA et Formateur bureautique
    Inscrit en
    Septembre 2005
    Messages
    1 871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur ERP - VBA et Formateur bureautique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2005
    Messages : 1 871
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Thumb down Voir le message
    bonjour,
    pas vérifié la logique!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     'Je rends visible le TCD caché
        With Sheets("TCD caché")
            .Visible = True
            .Range("C5").ShowDetail = True
            .Visible = False
        End With
    Je ne suis pas sûr que le ".Visible = True" suivi ".Visible = False" au sein d'un même With soit pertinent à tenté que cela fonctionne

    le genre
    • je rend visible
    • j'affiche les détails
    • je rend invisible (tout de suite après ...)

    me laisse septique

    ceci dit sans vouloir te vexé

    A+

  5. #5
    Membre Expert Avatar de Thumb down
    Homme Profil pro
    Retraité
    Inscrit en
    Juin 2019
    Messages
    1 560
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Juin 2019
    Messages : 1 560
    Par défaut
    je n'es pas cherché de logique, juste donné un exemple de code sans sélect et sélection!

    Citation Envoyé par AntoineBQ Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Sub Détail_Commandes_CPT_REG()
     
        'Je rends visible le TCD caché
        Sheets("TCD caché").Visible = True
     
        'Je masque à nouveau le TCD
        Sheets("TCD caché").Visible = False
     
    End Sub

  6. #6
    Membre averti
    Homme Profil pro
    Etd. Supply Chain Manager
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Etd. Supply Chain Manager
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut
    Merci à vous deux.

    J'ai une question, est-ce possible de combiner aussi .name à cette suite ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    'Je sélectionne les informations nécessaires
            Sheets("TCD caché").Range("C5").ShowDetail = True
                ThisWorksheets.Name = "Comptoirs non-rcp"
    L'idée, c'est que l'extraction ouverte change de nom. Comme j'ai 3-4 macros identiques mon code renomme uniquement les feuilles 2 et 3 (voir ci-dessous) mais les autres continuent à être 'Feuil5', etc.

    J'ai essayé ça.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    'Je sélectionne les informations nécessaires
            Sheets("TCD caché").Range("C5").ShowDetail = True
     
                'Je nomme ma feuille extraite
                For num = 1 To 15
                Worksheets("Feuil" & num").Name = "Comptoirs non-rcp"
                Next num
     
            Sheets("TCD caché").Range("C7").ShowDetail = True
     
                For num = 1 To 15
                Worksheets("Feuil" & num").Name = "Comptoirs non-rcp"
                Next num

  7. #7
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Bonjour Antoine,

    Ton code comprend une double quotte superflue.
    Au sein d'un même classeur, d'autre part, 2 feuilles de travail ne peuvent avoir le même nom.
    Si une erreur ne survient pas, ce dont je doute, Excel va indicer les noms de feuilles.
    Dans le cas présent, affecter un nom comportant un indice lié au compteur me paraît un processus opportun.

  8. #8
    Membre averti
    Homme Profil pro
    Etd. Supply Chain Manager
    Inscrit en
    Janvier 2019
    Messages
    41
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Etd. Supply Chain Manager
    Secteur : Bâtiment

    Informations forums :
    Inscription : Janvier 2019
    Messages : 41
    Par défaut
    Bonjour Marcel, c'est un plaisir de vous revoir !

    Citation Envoyé par MarcelG Voir le message
    Bonjour Antoine,

    Ton code comprend une double quotte superflue.
    Au sein d'un même classeur, d'autre part, 2 feuilles de travail ne peuvent avoir le même nom.
    Si une erreur ne survient pas, ce dont je doute, Excel va indicer les noms de feuilles.
    Dans le cas présent, affecter un nom comportant un indice lié au compteur me paraît un processus opportun.
    Désolé, mais qu'est-ce qu'une double quotte superflue et affecter un nom comportant un indice lié au compteur ?
    En effet, je ne l'avais pas vu. C'était un copié-collé sans avoir pensé à modifier le texte...

    Je viens d'essayer ce code avec une parade, ça à l'air de fonctionner.
    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
    'Je rends visible le TCD caché
        ThisWorkbook.Sheets("TCD caché").Visible = True
     
            'Je sélectionne les informations nécessaires
            ThisWorkbook.Sheets("TCD caché").Range("C5").ShowDetail = True
     
                'Je nomme ma feuille extraite
                ActiveSheet.Name = "Comptoirs non-rcp"
     
            ThisWorkbook.Sheets("TCD caché").Range("C7").ShowDetail = True
     
                ActiveSheet.Name = "Régul non-rcp"
     
        'Je masque à nouveau le TCD
        Sheets("TCD caché").Visible = False

  9. #9
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Plaisir partagé.

    Dans le code, il y a un - " - de trop.
    Tu peux t'en apercevoir en constatant que la colorisation des mots clés, noms d'objet.... n'est pas homogène.
    Beaucoup de texte est reporté en police de couleur rouge.
    C'est la raison pour laquelle, dans mon espace VBE, je procède à des colorisations bien tranchées (Vert, Rouge, Bleu, Noir)

    Quant à l'indice de nom de feuille, tu pourrais coder ainsi

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    Option Explicit
     
    Sub essai_name()
     
    Dim i As Byte
    For i = 1 To 2
           ThisWorkbook.Worksheets(i).Name = "Mafeuille_" & i
    Next i
     
    End Sub
    Ma remarque portant sur la partie de propriété "& i".

    J'attire ton attention sur le fait que l'objet désigné par
    est la feuille de travail indicée tel que reporté dans l'éditeur VBE.
    Dans celui-ci, apparaît cet indice suivi du nom affecté à la feuille; celui-ci entre parenthèses.

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

Discussions similaires

  1. ouvrir une requete selection en VBA
    Par milielf dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 01/08/2006, 17h50
  2. Cumuler des Filtres par Selection en VBA ?
    Par Fredo67 dans le forum Access
    Réponses: 4
    Dernier message: 05/07/2006, 14h00
  3. Requete select en VBA
    Par fredhali2000 dans le forum Requêtes et SQL.
    Réponses: 13
    Dernier message: 26/05/2006, 18h52
  4. [VBA-E]Selection en VBA
    Par toniox dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 11/05/2006, 09h49
  5. Ouvrire requête de selection en VBA ..
    Par snoopy69 dans le forum Access
    Réponses: 2
    Dernier message: 17/10/2005, 15h55

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