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 :

Délimiter un tableau Excel avec lignes et colonnes variables dans une Macro [XL-2016]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut Délimiter un tableau Excel avec lignes et colonnes variables dans une Macro
    Bonjour

    Je débute actuellement dans l'utilisation des macros sur Excel et je me heurte a un premier problème. Je tente d'automatiser une offre de prix, pour ce faire j'ai déjà créé une macro permettant de basculer les prix client sur un autre classeur avec une autre mise en forme.
    Mon soucis, est que le tableau varie quant a son nombre de lignes et de colonnes en fonction de l'offre. Je souhaite automatisé la mise en forme du tableau à parti de la ligne 9 (partie variable) et voici pour l'instant que j'utilise :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Range("A9").Select
    Set tbl = ActiveCell.CurrentRegion
    tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).Select
    Le problème est que cela séléctionne également des cellules contenant des formules, chose que je ne veux pas. J'aimerais également pouvoir régler la hauteur des lignes utilisées à 70 en même temps.

    Merci d'avance pour votre aide

  2. #2
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Bonjour Capsule, bonjour le forum,

    Peut-être comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim tbl As Range
     
    Range("A9").Select
    Set tbl = ActiveCell.CurrentRegion
    tbl.Offset(1, 0).Resize(tbl.Rows.Count - 1, tbl.Columns.Count).SpecialCells(xlCellTypeConstants).Select
    Selection.Rows.RowHeight = 70

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut
    Wouah ça fonctionne parfaitement! Merci Thautheme, la séléction ne prend plus en compte les formules

    J'essaye par la suite de cadrillé mon tableau en Weight = xlThin le soucis c'est que maintenant ça ne séléctionne plus que certaines cellules et ne couvre donc pas l'étendu du tableau.. Auriez-vous une idée pour y remédier ?

    merci encore en tout cas!

  4. #4
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Pas vraiment compris. Si tu veux tout quadriller, utilise le premier code, quadrille puis :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.SpecialCells(xlCellTypeConstants).Select
    et agis...

    P.S. Dire que je passe mon temps à dire dans ce forum qu'il faut éviter autant qu'on le peut les Select inutiles...

  5. #5
    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,

    Vu à 16h18
    Ma réponse est postérieure au post de Thautheme

    Thautheme,

    Pourquoi ces 2 sélections?

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    364
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 364
    Par défaut sans contexte précis
    Bonsoir ... (salut Marcel - autre fil )

    J’utiliserais .SpecialCells(xlCellTypeFormulas) plutôt que SpecialCells(xlCellTypeConstants).

    Tableau pour tableau, il est très intéressant de travailler avec un Tableau structuré.
    Exemple de code avec un tel tableau nommé Tableau1 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     [Tableau1].SpecialCells(xlCellTypeFormulas).Rows.RowHeight = 70
     [Tableau1].Borders().Weight = xlThin
    Nom : Tableau (ListObjects).jpg
Affichages : 874
Taille : 144,6 Ko

  7. #7
    Membre Expert Avatar de Thautheme
    Homme Profil pro
    salarié
    Inscrit en
    Août 2014
    Messages
    1 373
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : salarié

    Informations forums :
    Inscription : Août 2014
    Messages : 1 373
    Par défaut
    Re,

    Citation Envoyé par OrDonc Voir le message
    J’utiliserais .SpecialCells(xlCellTypeFormulas) plutôt que SpecialCells(xlCellTypeConstants)
    je me contente juste de répondre aux questions...

    Citation Envoyé par Capsule Corp Voir le message
    Le problème est que cela séléctionne également des cellules contenant des formules, chose que je ne veux pas.

  8. #8
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2020
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Distribution

    Informations forums :
    Inscription : Février 2020
    Messages : 3
    Par défaut
    Merci pour toutes vos réponses, j'ai réussi mon automatisation d'offre de prix!

    Super Forum

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

Discussions similaires

  1. Ecrire dans une cellule en utilisant Cells avec ligne et colonne variable
    Par devbecheng dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/12/2018, 16h18
  2. Réponses: 2
    Dernier message: 15/06/2015, 14h48
  3. [XL-2010] Insérer une ligne de maniere variable dans une liste de données
    Par vis896 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 18/04/2015, 21h04
  4. Filtre avec zone variable dans une macro
    Par encorejeune dans le forum OpenOffice & LibreOffice
    Réponses: 2
    Dernier message: 14/09/2014, 09h46
  5. numéro de colonne variable dans une corrélation
    Par hidodu dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 19/04/2011, 14h38

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