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 :

Modifier format cellule dans feuille Excel depuis ACCES


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Par défaut Modifier format cellule dans feuille Excel depuis ACCES
    Bonjour à tous,

    Je ne comprends pas pourquoi, je n'arrive pas à modifier la taille de police d'une cellule d'un feuille EXCEL.

    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
        'Initialisations
        Set xlApp = CreateObject("Excel.Application")
        Set xlBook = xlApp.Workbooks.Add
     
        'Ajouter une feuille de calcul
        Set xlSheet = xlBook.Worksheets.Add
        xlSheet.Name = "NomduClient"
     
        ' Num DEVIS
        '  écriture dans la cellule de ligne 5 et de la colonne 1
        xlSheet.Cells(HauteurLigneNumDevis, 1) = "DEVIS N° "
        'xlSheet.Cells(HauteurLigneNumDevis, 1).Select
            With Selection
                .Font.Name = "Calibri"
                .Font.Size = 18
            End With
    Je bloque sur quelque chose, mais je ne vois pas quoi.

    j'ai essayé de remplacé .select par .activate, mais aucune modification prise en compte

    Pouvez-vous m'aider ?

    Merci.

  2. #2
    Membre Expert
    Inscrit en
    Août 2006
    Messages
    1 588
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 1 588
    Par défaut
    Bonjour,
    Apparemment la sélection n'est pas définie avant le With
    Il faudrait retirer l'apostrophe devant la ligne précédente pour la bonne cellule soit sélectionnée

  3. #3
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 438
    Par défaut Exemple
    Ceci fonctionne:
    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
    Sub TestExcel()
        'Initialisations
        Set xlapp = CreateObject("Excel.Application")
        Set xlBook = xlapp.Workbooks.Add
        xlapp.Visible = True                            '--- plus facile à suivre quand Excel devient visible
     
        'Ajouter une feuille de calcul
        Set xlSheet = xlBook.Worksheets.Add
        xlSheet.Name = "NomduClient"
     
        ' Num DEVIS
        '  écriture dans la cellule de ligne 5 et de la colonne 1
     
        HauteurLigneNumDevis = 5                  '--- sans cela, cela plante !
     
        With xlSheet.Cells(HauteurLigneNumDevis, 1)
          .Value = "DEVIS N° "
          .Font.Name = "Calibri"
          .Font.Size = 18
        End With
    End Sub
    Bonne continuation

  4. #4
    Membre éclairé Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Par défaut
    Re,

    Merci EricDgn, c'est beaucoup mieux comme cela.

    Comme je ne suis pas très fort en syntaxe VBA Excel, j'avance progressivement grâce à votre aide. MERCI à tous.

    Maintenant, je suis confronté à 2 autres problèmes.

    1°/ quand j'ouvre l'application Excel et que je rencontre un souci dans le code lancé à partir ACCESS, il reste systématiquement un classeur ouvert (qui n'est pas sauvegardé) qui reste en fond de tâche.

    Comment puis-je fermer ce classeur proprement.

    2°/ j'aimerai fusionner une cellule en utilisant des variables comme ceci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     'Plage à sélectionner Range("A5:G5").Select
     
    With xlSheet.Range(Cells(HauteurLigneNumDevis, 1), Cells(HauteurLigneNumDevis, NbreColonne)).Select
            .Merge
    End With
    Mais ça ne fonctionne pas.

    Merci d'avance pour votre aide.

    Daniel

  5. #5
    Expert confirmé
    Homme Profil pro
    retraité
    Inscrit en
    Juin 2012
    Messages
    3 438
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : retraité
    Secteur : Associations - ONG

    Informations forums :
    Inscription : Juin 2012
    Messages : 3 438
    Par défaut
    1°/ quand j'ouvre l'application Excel et que je rencontre un souci dans le code lancé à partir ACCESS, il reste systématiquement un classeur ouvert (qui n'est pas sauvegardé) qui reste en fond de tâche.
    Comment puis-je fermer ce classeur proprement.
    La réponse n'est pas tout à fait la même selon que
    (1) le fichier Excel est ouvert, travaillé puis refermé, le tout dans la même foulée (la même Sub) (voir exemple ci-dessous)
    (2) un certain fichier Excel est ouvert, que l'on travaille tantôt dans Access, tantôt su Excel, puis que l'on ferme Excel.

    2°/ j'aimerai fusionner une cellule en utilisant des variables comme ceci
    Là, c'est le piège habituel: il faut absolument spécifier dans les Range(Cells(),Cells()) dans quelle feuille se trouvent ces Range et Cells.
    C'est donc xlSheet.Range(xlSheet.Cells(...

    Un 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
    26
    Sub TestExcel()
       Dim xlApp As Excel.Application, xlBook As Excel.Workbook, xlSheet As Excel.Worksheet
       Dim HauteurLigneNumDevis As Single, NbreColonne As Long
       'Initialisations
       Set xlApp = CreateObject("Excel.Application")
       Set xlBook = xlApp.Workbooks.Add
       xlApp.Visible = True
     
       'Ajouter une feuille de calcul
       Set xlSheet = xlBook.Worksheets.Add
       xlSheet.Name = "NomduClient"
     
       '  écriture dans la cellule de ligne 5 et de la colonne 1
       HauteurLigneNumDevis = 5
       With xlSheet.Cells(HauteurLigneNumDevis, 1)
         .Value = "DEVIS N° "
         .Font.Name = "Calibri"
         .Font.Size = 18
       End With
     
       'Plage à sélectionner Range("A5:G5").Select
       NbreColonne = 5
       xlSheet.Range(xlSheet.Cells(HauteurLigneNumDevis, 1), xlSheet.Cells(HauteurLigneNumDevis, NbreColonne)).Merge
     
       xlBook.Close SaveChanges:=False     '--- ferme le dossier Excel sans rien demander et sans sauvegarder
    End Sub
    Je recommande vraiment d'utiliser systématiquement Option Explicit.
    Cela évite beaucoup de recherches fastidieuses liées à des erreurs d'encodage des noms des variables.

    Bonne continuation.

  6. #6
    Membre éclairé Avatar de Daniel MOREAU
    Inscrit en
    Décembre 2004
    Messages
    372
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 372
    Par défaut
    Merci beaucoup EricDgn,

    Pour le 1° point :
    1°/ quand j'ouvre l'application Excel et que je rencontre un souci dans le code lancé à partir ACCESS, il reste systématiquement un classeur ouvert (qui n'est pas sauvegardé) qui reste en fond de tâche.
    Comment puis-je fermer ce classeur proprement.
    Dans le cas d'une erreur dans le traitement, j'ai ajouté une gestion d'erreur en précisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xlBook.Close SaveChanges:=False
    sinon, si tout est correct, je sauvegarde :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     xlBook.SaveAs "C:\Users\DanielM.xxxxxx\Documents\DevisClient_Num.xlsx"
    Je viens de tester, mais j'ai toujours un souci, j'ai toujours une feuille qui reste en fond de tâche.


    Je recommande vraiment d'utiliser systématiquement Option Explicit.
    Cela évite beaucoup de recherches fastidieuses liées à des erreurs d'encodage des noms des variables.
    Oui, je l'utilise, mais j'avoue avoir du mal.

    Je continue de chercher, en attendant ton aide. Merci

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 23/04/2012, 15h15
  2. [EG] Ecrire dans les cellules d'une feuille Excel depuis SAS
    Par MDsas dans le forum Outils BI
    Réponses: 12
    Dernier message: 15/12/2011, 17h35
  3. Lecture commentaire cellule dans feuille Excel
    Par franckMenant dans le forum API, COM et SDKs
    Réponses: 15
    Dernier message: 28/04/2011, 11h06
  4. Suppresion d'une feuille Excel depuis acces
    Par Australia dans le forum Access
    Réponses: 5
    Dernier message: 02/02/2006, 09h08
  5. [VBA] problème choix de cellule dans feuille excel
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/02/2006, 10h48

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