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 :

Utiliser une macro d'un fichier excell pour mettre en page une autre fichier excell


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Data Processor
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Data Processor
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Par défaut Utiliser une macro d'un fichier excell pour mettre en page une autre fichier excell
    Bonjour,

    J'aimerais utiliser un fichier excell 'de base' contenant une macro qui de mettre en page d'autres fichiers.

    La raison est que j'ai plus de 1000 fichiers excell contenant un tableau que je voudrais mettre en page.

    Mon fichier 'de base' doit me permettre d'ouvrir ces fichiers, de mettre en page le tableau (couleurs, font, ...) et de les sauver.

    Je n'ai pas de problème pour ouvrir les 100 fichiers, mais je n'arrive pas à travailler dedans.

    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
    Sub testtab()
    
    Dim xlapp As Excel.Application
    Dim xlWbk As Excel.Workbook
    Dim xlWsh, xlWsh2 As Excel.Worksheet
    Dim Path, Path2 As String
    Dim Ndossier, Nfichier, Nsheet, NivSeg As String
    Dim Beginline, Endline, NumTab As Integer
    
    'Référence dans mon fichier de base
    
    Set xlapp = CreateObject("Excel.Application")
    
    xlapp.DisplayAlerts = False
    
    Sheets("Liste_Tables").Select
    
    Beginline = 2
    
    If Range("A" & Beginline).Offset(1, 0).Value <> "" Then
        Endline = Range("A" & Beginline).End(xlDown).Row
    Else
        Endline = Beginline
    End If
    
    For NumTab = Beginline To Endline
    
    
    Ndossier = Range("A" & NumTab).Value
    Nfichier = Range("B" & NumTab).Value
    Nsheet = Range("C" & NumTab).Value
    NivSeg = Range("D" & NumTab).Value
    
    Path2 = Ndossier & Nfichier & ".xlsx"
    
    'Ouverture de mon fichier à modifier avec la macro
    
    Set xlWbk = xlapp.Workbooks.Open(Path2)
    xlapp.Visible = True
    
    Set xlWsh = xlWbk.Worksheets(Nsheet)
    
    xlWbk.Worksheets(Nsheet).Select
    
    xlWbk.Worksheets(Nsheet).Rows("1:4").Delete
    
    Dim FirstCol, LastCol, FirstCel, LastCel, TabCel As Integer
    
    FirstCol = 1
    LastCol = xlWbk.Worksheets(Nsheet).Cells(NivSeg + 1, FirstCol).End(xlToRight).Column
    LastCel = xlWbk.Worksheets(Nsheet).Range("A65536").End(xlUp).Row
    
    'Font
    xlWbk.Worksheets(Nsheet).Range(Cells(1, 1), (Cells(LastCel, LastCol))).Select
    With Selection.Font
        .Name = "Tahoma"
        .Size = 8
        .Bold = False
        .Italic = False
        .Color = RGB(97, 96, 101)
    End With
    
    
    Next
    
    xlapp.DisplayAlerts = True
    End Sub
    J'arrive à supprimer des lignes, mais je ne sais pas comment aller plus loin (modifier le font, les couleus, ...), car j'ai besoin de pouvoir travailler dans la sheet ACTIVE.
    Ma seule question est donc :
    Comment puis-je faire pour travailler dans la sheet Nsheet de ce fichier comme dans une sheet de mon fichier de base ?

    Merci d'avance pour votre aide.

    Anthony

  2. #2
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Ne jamais selectionner... c'est inutile..
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    xlWbk.Worksheets(Nsheet).Range(Cells(1, 1), (Cells(LastCel, LastCol))).Select
    With Selection.Font
        .Name = "Tahoma"
        .Size = 8
        .Bold = False
        .Italic = False
        .Color = RGB(97, 96, 101)
    End With
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With xlWbk.Worksheets(Nsheet).Range(Cells(1, 1), (Cells(LastCel, LastCol))).font
    .Name = "Tahoma"
        .Size = 8
        .Bold = False
        .Italic = False
        .Color = RGB(97, 96, 101)
    End With

  3. #3
    Membre averti
    Homme Profil pro
    Data Processor
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Data Processor
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Par défaut
    Merci pour cette info, mais j'ai essayé et je reçois le message d'erreur suivant :

    Run-time error '1004'
    Application-defined or object-defined error

    Avez-vous une idée ?

    Anthony

  4. #4
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    peux tu envoyer ton fichier macro plus le premier fichier de la liste dans un zip?

  5. #5
    Membre averti
    Homme Profil pro
    Data Processor
    Inscrit en
    Novembre 2009
    Messages
    37
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Data Processor
    Secteur : Conseil

    Informations forums :
    Inscription : Novembre 2009
    Messages : 37
    Par défaut
    Voici mes fichiers.

    Je dois aussi colorer les cellules sur base de conditions, encadrer les cellules, ... . Mais je pense que si je peux adapter le font, je pourrai aussi faire le reste.

    Merci d'avance.

    Anthony
    Fichiers attachés Fichiers attachés

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Septembre 2012
    Messages
    1 733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2012
    Messages : 1 733
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    With xlWbk.Worksheets(Nsheet).Range(xlWbk.Worksheets(Nsheet).Cells(1, 1), xlWbk.Worksheets(Nsheet).Cells(3, 5)).Font
        .Name = "Tahoma"
        .Size = 8
        .Bold = False
        .Italic = False
        .Color = RGB(97, 96, 101)
    End With

Discussions similaires

  1. Réponses: 4
    Dernier message: 26/05/2015, 09h10
  2. Réponses: 6
    Dernier message: 27/06/2014, 14h54
  3. Réponses: 7
    Dernier message: 22/03/2011, 18h00
  4. Réponses: 8
    Dernier message: 28/04/2008, 13h28
  5. Réponses: 8
    Dernier message: 08/03/2007, 16h54

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