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 :

Présentation en VBA


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut Présentation en VBA
    Bonjour à tous, alors voila, je suis en stage et on m'a demandé de faire un script pour mettre en forme un tableau. Je précise, je fais des requêtes SQL dont j'exporte les résultats dans une feuille Excel, ce qu'il me faudrait, c'est un script qui permettrait de quadriller le tableau où il y a des données uniquement bien entendu, d'ajuster la taille des colonnes et des lignes à la taille des données, de faire en sorte que le tableau tienne sur une page (en largeur parceque les tableaux font souvent plusieurs pages), ce qui fait qu'au final, l'utilisateur aurait juste à exporter le résultat dans Excel et à appuyer sur Imprimer sans se poser de questions...

    Si vous avez des pistes de départ ou bien encore mieux une idée précise de comment procéder, je suis preneur. Merci d'avance

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour

    Fais la manipulation avec l'enregistreur de macro (Outils/Macro/Nouvelle Macro), cela va te créer un module (Alt+F11) pour le visualiser.

    Tu n'as plus qu'à éplucher le code VBA.

    Starec

  3. #3
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Bonjour et Merci

    Alors, voila ce que ça me donne quand je quadrille une case comme je veux

    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
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    maintenant, ce que je voudrais savoir, c'est comment faire pour qu'il m'applique ça sur toutes les cases ou il y a des données... et aussi savoir si c'est possible d'avoir un classeur Excel par défaut dans lequel s'executera le quadrillage automatique et tout le reste dés que j'exporte les données de ma BDD vers le classeur... Je ne connais pas grand chose à la syntaxe en VBA, mais je suppose que le parcours d'un tableau doit toujours être dans le style du C genre

    while(contenu>0)
    {
    quadriller;
    colonne+1;
    ligne+1;
    }
    quelqun peut me dire vaguement comment ça se traduit en VBA ?

    Merci d'avance

  4. #4
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Citation Envoyé par Tiresia
    Bonjour et Merci

    Alors, voila ce que ça me donne quand je quadrille une case comme je veux

    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
    Selection.Borders(xlDiagonalDown).LineStyle = xlNone
        Selection.Borders(xlDiagonalUp).LineStyle = xlNone
        With Selection.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    maintenant, ce que je voudrais savoir, c'est comment faire pour qu'il m'applique ça sur toutes les cases ou il y a des données... et aussi savoir si c'est possible d'avoir un classeur Excel par défaut dans lequel s'executera le quadrillage automatique et tout le reste dés que j'exporte les données de ma BDD vers le classeur... Je ne connais pas grand chose à la syntaxe en VBA, mais je suppose que le parcours d'un tableau doit toujours être dans le style du C genre



    quelqun peut me dire vaguement comment ça se traduit en VBA ?

    Merci d'avance
    bonjour à tous

    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
    dim cel as range
    for each cel in sheets.cells
    if cel.value > "" then 
      cel.Borders(xlDiagonalUp).LineStyle = xlNone
        With cel.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    next
    mais cela risque d'etre tres long, il faut limité la selection

    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
    dim cel as range
    for each cel in Range("A1:F50") ' Traite la plage definie
    if cel.value > "" then 
      cel.Borders(xlDiagonalUp).LineStyle = xlNone
        With cel.Borders(xlEdgeLeft)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlEdgeTop)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlEdgeBottom)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlEdgeRight)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With cel.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    next
    bonne journée

  5. #5
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Merci bien, petit sushi, il me met lors de l'execution :

    "Erreur d'execution 1004, impossible de définir la propriété LineStyle de la classe Border"

  6. #6
    Membre Expert Avatar de wilfried_42
    Homme Profil pro
    Auto-entrepreneur
    Inscrit en
    Novembre 2006
    Messages
    1 427
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Auto-entrepreneur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 427
    Par défaut
    Citation Envoyé par Tiresia
    Merci bien, petit sushi, il me met lors de l'execution :

    "Erreur d'execution 1004, impossible de définir la propriété LineStyle de la classe Border"

    re:


    oui je viens de le voir, la procedure traite cellule par cellule donc les deux bloc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
        With Selection.Borders(xlInsideVertical)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
        With Selection.Borders(xlInsideHorizontal)
            .LineStyle = xlContinuous
            .Weight = xlThin
            .ColorIndex = xlAutomatic
        End With
    n'ont pas lieu d'etre etant donné que dans une cellule il ne paut pas y avoir de lignes medianes horisontales ou verticales

  7. #7
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 85
    Par défaut
    Merci, déja la ça marche bien, alors maintenant je me pose la question suivante :

    Est ce que c'est possible de faire en sorte que cette Macro soit présente dans un classeur par défaut dans lequel j'irais exporter les Résultats de mes requêtes SQL et qu'elle soit executée automatiquement quand j'ouvre le classeur, ce qui fait que je n'aurais plus rien à faire en présentation à la main, il me suffira d'enregistrer ensuite le classeur avec les résultats sous un autre nom que le classeur par defaut pour pouvoir l'utiliser autant de fois que je veux...j'espere être assez clair, merci d'avance

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

Discussions similaires

  1. [PPT-2013] Conserver la mise en forme source des présentations en VBA
    Par fidecourt dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 13/03/2013, 11h17
  2. [PPT-2007] Macro VBA copie présentation
    Par audran12 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 03/05/2012, 14h12
  3. supprimer une image sur une présentation powerpoint avec VBA
    Par Mati68 dans le forum VBA PowerPoint
    Réponses: 0
    Dernier message: 12/12/2007, 14h51
  4. VBA-Excel:Présentation d'un tableau (insertion ligne de légende)
    Par gabrielle_dl dans le forum Macros et VBA Excel
    Réponses: 20
    Dernier message: 15/06/2006, 11h11

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