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 :

Parcourir les colonnes et les modifier


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut Parcourir les colonnes et les modifier
    Bonjour,

    J’importe des données d’une table Access sur une feuille Excel, et je voudrais
    Avoir accès aux colonnes (A:N) pour modifier les largeurs, et appliquer différents format
    (Centrer, police, couleur).

    J’avais pensé à faire cela mais je ni arrive pas :

    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
    Parcourir les colonnes
    For Each ????
     
          Select Case ??????
                Case A
                     ColumnWidth = 13
                     HorizontalAlignment = xlCenter            
                 Case B
                     ColumnWidth = 10           
                Case C
                     ColumnWidth = 15           
                Case D:N
                     ColumnWidth = 8
                     HorizontalAlignment = xlCenter           
          End Select
    Next
    Merci pour votre aide.

    Salutations

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    With Sheets("Feuil1")
        With .Columns("A:A")
            .ColumnWidth = 13
            .HorizontalAlignment = xlCenter
        End With
        .Columns("B:B").ColumnWidth = 10
        .Columns("C:C").ColumnWidth = 15
        With .Columns("D:N")
            .ColumnWidth = 8
            .HorizontalAlignment = xlCenter
        End With
    End With

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Bonjour Mercatog,

    Merci pour ta réponse,

    En débogage je récupère une erreur de compilation (variable non définie)
    sur le premier xlCenter de .HorizontalAlignment = xlCenter.

    Je neutralise la ligne est l'erreur (sub ou fonction non définie) se porte sur Columns de With Columns("D:N")

    Salutations

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    As tu repris texto le code proposé ou tu l'as adapté? Si tu as adapté, montre ton code.
    Le code proposé est équivalent à celui là
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sheets("Feuil1").Columns("A:A").ColumnWidth = 13
    Sheets("Feuil1").Columns("A:A").HorizontalAlignment = xlCenter
    Sheets("Feuil1").Columns("B:B").ColumnWidth = 10
    Sheets("Feuil1").Columns("C:C").ColumnWidth = 15
    Sheets("Feuil1").Columns("D:N").ColumnWidth = 8
    Sheets("Feuil1").Columns("D:N").HorizontalAlignment = xlCenter
    les With sont pour ne pas répéter l'écriture des objets.

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Bonsoir Mercatog,

    Je joins le code ou j'ai intercaler la modifications des largeurs des colonnes,
    il n'y à que le xlCenter qui produit une erreur.

    Est ce que l'écriture des lignes de code du Delette peut se simplifier ?

    De même peux-tu m'aider pour faire une saut de page au bout de 25 lignes ?

    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    Private Sub BtnExportExcel_Click()
    On Error GoTo Test_Err
     
    'Recuperation du sql
     Ex_ExcelSql = strsql
     
     Chemin = ""
     
     Set rs = CurrentDb.OpenRecordset(strsql, dbOpenDynaset)
     Set Excl = fExportExcel(Chemin, rs, True, 3, 1)
     
     Path = CurrentProject.Path
     
     With Excl.Sheets(1)
        'Renomme les champs
        .Cells(3, 3) = "Nom"
        .Cells(3, 9) = "Date"
        .Cells(3, 18) = "Activ."
        .Cells(3, 19) = "Asso."
     
        'Supprime les colonnes
        .Columns("T:AE").Delete
        .Columns("A:B").Delete
        .Columns("C:E").Delete
     
    'DEBUT CODE MODIFICATION COLONNES
     
        'Modifie des largeurs des colonnes
        With .Columns("A:A")
             .ColumnWidth = 13
             '.HorizontalAlignment = xlCenter ' ERREUR
        End With
     
        .Columns("B:B").ColumnWidth = 10
        .Columns("C:C").ColumnWidth = 15
     
        With .Columns("D:N") ' ERREUR RESOLU IL MANQUAIT LE POINT
             .ColumnWidth = 8
             '.HorizontalAlignment = xlCenter
        End With
     
    'FIN DU CODE MODIFICATION COLONNE
     
        With .PageSetup
             'en-tête de page
             .CenterHeader = "&G&20&KFF0000&""Comic Sans Ms""Liste des bénéficiaires" & "&B" & Chr(10) & "   " & Year(CDate(DébutSaison)) & " - " & Year(CDate(FinSaison)) '<-- texte (style gras + taille 12 + style police)
             .Orientation = xlLandscape
     
             'pied de page
             .LeftFooter = "&I&D / &T" '<-- date / heure (style italique)
             .RightFooter = "&8&P/&N" '<-- numéro de page / nombre de pages (taille 8)
        End With
    End With
     
    'Excl.SaveAs Path & "\" & "Dossier\Bénévoles.xlsx" & "   " & Year(CDate(DébutSaison)) & " - " & Year(CDate(FinSaison))
        Excl.Application.Quit
     
        MsgBox "Tableau Excel Terminé"
     
        Set Excl = Nothing
    Exit Sub
    Test_Err:
     
    If err.Number <> 91 Then
           MsgBox "Une erreur inattendue est apparue . L'erreur N° " & err.Number & " ( " & err.Description & " )! Contactez l'administrateur.", vbOKOnly + vbCritical, "Erreur inattendue !"
    End If
    Set Excl = Nothing
    Set rs = Nothing
    End Sub
    Par avance je te remercie.

    Salutations

  6. #6
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Bonjour,

    Remplace xlCenter par -4108.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  7. #7
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Bonjour AlainTech,

    Merci pour ta réponse ça fonctionne très bien.

    Par contre j'ai modifier de cette façon, est-ce que cela est correct de
    procèder ainsi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Global Const xlCenter = -4108
    Maintenant pour ma mise en page j'ai une erreur sur cette ligne.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    .LeftMargin = .InchesToPoints(0.19)
    J'ai cru comprendre que Access ne reconnait pas InchesToPoints, mais je n'est pas trouvé de solution de remplacement.


    Salutations

  8. #8
    Modérateur
    Avatar de AlainTech
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Mai 2005
    Messages
    4 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2005
    Messages : 4 235
    Par défaut
    Pour la constante, c'est parfait.
    Pour InchesToPoints, la bonne syntaxe est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Application.InchesToPoints(0.19)
    A toi de mettre le nom de ton instance de l'application Excel.
    N'oubliez pas de cliquer sur quand vous avez obtenu ou trouvé vous-même la réponse à votre question.
    Si vous trouvez seul, pensez à poster votre solution. Elle peut servir à d'autres!
    Pensez aussi à voter pour les réponses qui vous ont aidés.
    ------------
    Je dois beaucoup de mes connaissances à mes erreurs!

  9. #9
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Août 2005
    Messages : 660
    Par défaut
    Bonjour AlainTech,

    Je n'ai pas bien compris cette phrase:
    'A toi de mettre le nom de ton instance de l'application Excel.

    J'ai fais comme cela, mais j'ai l'erreur (membre de méthode ou de données introuvable).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With Excl.Sheets(1)
            With .PageSetup
              .LeftMargin = Application.InchesToPoints(0.196)
              .RightMargin = Aplication.InchesToPoints(0.196)
              .TopMargin = Aplication.InchesToPoints(1.063)
               End With
    End With
    Salutations

Discussions similaires

  1. Rollover sur les lignes et les colonnes
    Par mael94420 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 20/06/2007, 01h06
  2. les tableaux et les colonnes
    Par imsse dans le forum C#
    Réponses: 4
    Dernier message: 22/05/2007, 16h45
  3. Réponses: 2
    Dernier message: 19/04/2007, 11h23
  4. Réponses: 6
    Dernier message: 16/01/2007, 21h34

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