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

VBA Access Discussion :

Debutant - soucis de mise en forme


Sujet :

VBA Access

  1. #1
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut Debutant - soucis de mise en forme
    Bonjour à tous.
    Voila plusieurs jours que je surf sur dvp.com sans trouver mes réponses.
    Tout d'abord je suis débutant en VBA et j’apprends sur le tas. Je suis chargé de créer des macros qui, à partir d’une bdd, générent des documents excels. Jusque la pas de soucis.

    Cependant lorsque j’essaie d’utiliser les bouts de codes que j’appercois ici, j’ai systématiquement la même erreur « variable non définie »

    Exemple : j’ai besoin de mettre une feuille de mon classeur en paysage. J’ai trouvé ce bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    With objRange.Borders
        .ColorIndex = 5
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
    Pour celui-ci comme pour les autres, impossible de l’utiliser, il y a un soucis de syntaxe dans ma page je pense car parfois j’arrive à m’en sortir en mettant des « . » devant certains composants.

    L’entete de ma macro
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub TestExcel()
     
    Dim oExcel, zaehler, i, n, z, summep, summe As String, umform As String
    Dim db As Database, rs As Recordset, MerkAbt, MerkFA As Long, ueber As String
    Dim head As Variant
    Dim ra As String, ri As String, ra2 As String, ri2 As String, j As String, summetotalp, summetotal As String
    Dim typApp, client, pays, Qty As String
     
    Set db = CurrentDb
    On Error Resume Next
    Err.Clear
    Set oExcel = GetObject(, "Excel.Application")
    If Err.Number <> 0 Then Set oExcel = CreateObject("Excel.Application")
    Puis je boss dans un « With oExcel / end with »

    Je sais que je commence pas forcément par le bon bout. J'ai de bonnes connaissances en prog, un peu en VB mais en VBA je découvre. Par conséquent je ne fais "que" de la bidouille.

    En bref : pour utiliser du code fournit sur le site comme celui ci (insertion d'image)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim objFeuille As Worksheet, objShape As Shape
     
    Set objFeuille = ActiveSheet
    Set objShape = objFeuille.Shapes.AddPicture("c:\developpez\logo_developpez.gif", msoFalse, msoCTrue, 100, 100, 70, 70)
    quels pré requis faut il pour que je puisse éxecuter la macro ?

    Un grand merci pour votre aide

  2. #2
    Expert confirmé
    Avatar de zazaraignée
    Profil pro
    Étudiant
    Inscrit en
    Février 2004
    Messages
    3 174
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2004
    Messages : 3 174
    Points : 4 085
    Points
    4 085
    Par défaut
    Salut

    Bienvenue sur le forum DVP

    Ce n'est pas évident, en effet, de découvrir toute la panoplie d'objets Excel et en même temps devoir le faire en conjugaison d'une liaison sur une base de données.

    Il y a d'excellents tutoriels sur le VBA et aussi sur les liaisons aux données. Tu les a peut-être déjà vus.

    Tu trouveras en fouillant dans l'aide d'excel un (ou plusieurs) diagramme(s) montrant la hiérachie des objets Excel et tout le tintouin.

    Mais l'outil d'aide le plus utile quand on cherche sans savoir où trouver, c'est l'explorateur d'objets, que tu fais apparaître dans l'IDE de VBA en tapant le raccourci F2.

    Si tu ne trouves toujours pas, tu dis.

  3. #3
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Merci bien pour ces expliquations Cependant je vois pas à quoi peut me servir l'explorateur d'objet

    J'aurais besoin de connaitre la syntaxe la hierarchie d'une macro VBA pour que je comprenne comment utiliser les bouts de codes ci dessus, ou encore pourquoi je dois parfois mettre des "." devant un code pour que ca fonctionne.


  4. #4
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Bonjour,

    1. je ne vois pas dans ton code la déclaration de la variable objRange
    2. la variable n'est pas instanciée (initialisée)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set objRange = Range("A1:A10")
    Essaye ce petit bout de code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub test()
    Dim objRange As Range
     
    Set objRange = Range("A1:A10")
     
    With objRange.Borders
        .ColorIndex = 5
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
     
    End Sub
    Pourquoi mettre un point devant certaines propriétés (.ColorIndex, .LineStyle, .Weight) ? Pour indiquer que ces propriétés sont liées à objRange.Borders via la méthode With...End With. Cette méthode permet simplement de ne pas devoir répéter objRange.Borders à chaque ligne.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    With objRange.Borders
        .ColorIndex = 5
        .LineStyle = xlContinuous
        .Weight = xlThin
    End With
     
    'correspond à
     
    objRange.Borders.ColorIndex = 5
    objRange.Borders.LineStyle = xlContinuous
    objRange.Borders.Weight = xlThin
    PS : Je n'ai pas regardé le reste du code
    .

  5. #5
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Merci encore pour cette réponse rapide.

    Je vous invite à regarder la PJ : cette erreur je l'ai très souvent à la déclaration. Une idée?
    Images attachées Images attachées  

  6. #6
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    On ne sait rien lire sur ta pièce jointe mais je devine que tu as en tête de module "Option Explicit" ce qui implique que toutes tes variables doivent être correctement déclarées (ce qui est bien).

    Je t'invite par commencer à lire ce tuto
    Utiliser les variables en VBA Excel
    .

  7. #7
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    Citation Envoyé par fring Voir le message
    On ne sait rien lire sur ta pièce jointe mais je devine que tu as en tête de module "Option Explicit" ce qui implique que toutes tes variables doivent être correctement déclarées (ce qui est bien).

    Je t'invite par commencer à lire ce tuto
    Utiliser les variables en VBA Excel
    .

    Mmmm quel est le soucis avc la pj ? moi ca passe nikel

    Concernant le tuto sur les variables, déja lu, c'est pour cela que je ne comprends pas le message d'erreur sur le screen

    Je vais passer pour un boulet mais : sur le 2eme screen ci dessous, je n'ai pas le type Range comme choix....et si je ne la déclare pas le compilateur interprete la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Set objRange = Range("A1:A10")
    avec Range une fonction non définie ...
    Images attachées Images attachées  

  8. #8
    Expert éminent
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Points : 7 964
    Points
    7 964
    Par défaut
    Ote moi d'un doute, tu écrits bien ton code dans Excel ?

  9. #9
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    [mod boulet] .... sous Access .....[/boulet] completement désolé

    j'ai besoin d'écrire dans excel depuis access

  10. #10
    Futur Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    20
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 20
    Points : 9
    Points
    9
    Par défaut
    après approfondissement je me permet de revenir.

    Question simple : je suis dans Access, une fonction, je veux insérer une image dans ma feuille excel et la redimenssionner . J'ai trouvé ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        .ActiveSheet.Pictures.Insert ("c:\monimage.jpg")
        .ActiveSheet.Shapes("Picture 1").Select
        .Selection.ShapeRange.ScaleWidth 2.5, msoFalse, msoScaleFromTopLeft
        .Selection.ShapeRange.ScaleHeight 2.5, msoFalse, msoScaleFromTopLeft
    Sauf que msoFalse est une variable inconnue (comme les autres d'ailleurs).

    Quelqu'un aurait il une solution à ce probleme ?

Discussions similaires

  1. Soucis de mise en forme
    Par Om785 dans le forum AWT/Swing
    Réponses: 3
    Dernier message: 10/05/2014, 21h52
  2. Souci de mise en forme
    Par CinePhil dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 17/05/2010, 11h53
  3. Soucis avec mise en forme conditionnelle
    Par icecube216 dans le forum Access
    Réponses: 4
    Dernier message: 04/09/2006, 17h08
  4. [debutant]mise en forme xls+xml
    Par freums dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 07/11/2005, 15h04
  5. [petites questions][debutant]run et mise en forme
    Par kurgan dans le forum Eclipse Java
    Réponses: 5
    Dernier message: 22/10/2005, 17h40

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