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 :

ouvrir un classeur en invisible


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Par défaut ouvrir un classeur en invisible
    bonjour,

    j'ai un ptit souci, lors de mon traitement, j'ai une boucle qui ouvre tous les classeurs dans un repertoire, le probleme c que je veux ouvrir ses classeurs mais sans qu'ils apparaissent sur mon ecran, j'ai mis application.visible = false, mais ça me cache meme le classeur sur quoi je travaille.

    est ce que vous pouvez me dire comment m'y prendre?

    merci

  2. #2
    Inactif  

    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    4 555
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 4 555
    Par défaut
    Bonjour,
    joue avec la collection de tes fenêtres :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Windows("toto.xls").Visible = False
    devrait faire l'affaire pour ne rendre invisible, par exemple, que le classeur toto.xls
    tu peux aussi faire une boucle sur la collection Windows et rendre invisibles tous les classeurs dont le nom n'est pas celui du seul à laisser visible.

  3. #3
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
        Dim wb As Workbook
        Dim oWin As Window
     
        Set wb = Workbooks.Open("monclasseur.xls")
        For Each oWin In wb.Windows
            oWin.Visible = False
        Next oWin
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  4. #4
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Par défaut
    j'ai essayé ceci mais ça marche pas

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Formateur et développeur chez EXCELLEZ.net
    Inscrit en
    Novembre 2003
    Messages
    19 125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur et développeur chez EXCELLEZ.net
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 19 125
    Billets dans le blog
    131
    Par défaut
    Il faudrait préciser ce que tu as essayé et ce qui ne fonctionne pas... Message d'erreur, ligne sur laquelle le code bloque...
    "Plus les hommes seront éclairés, plus ils seront libres" (Voltaire)
    ---------------
    Mes billets de blog sur DVP
    Mes remarques et critiques sont purement techniques. Ne les prenez jamais pour des attaques personnelles...
    Pensez à utiliser les tableaux structurés. Ils vous simplifieront la vie, tant en Excel qu'en VBA ==> mon tuto
    Le VBA ne palliera jamais une mauvaise conception de classeur ou un manque de connaissances des outils natifs d'Excel...
    Ce ne sont pas des bonnes pratiques parce que ce sont les miennes, ce sont les miennes parce que ce sont des bonnes pratiques
    VBA pour Excel? Pensez D'ABORD en EXCEL avant de penser en VBA...
    ---------------

  6. #6
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Par défaut
    bein j'ai mis le code que tu m'as donné, et il m'ouvre toujours les classeurs en mode visible, et ça donne meme pas d'erreur.

  7. #7
    Membre Expert Avatar de Godzestla
    Homme Profil pro
    Chercheur de bonheur
    Inscrit en
    Août 2007
    Messages
    2 403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : Belgique

    Informations professionnelles :
    Activité : Chercheur de bonheur
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2007
    Messages : 2 403
    Par défaut
    Bonjour,
    ce serait plus facile si tu montrais ton code !

  8. #8
    Membre confirmé
    Inscrit en
    Avril 2006
    Messages
    181
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 181
    Par défaut
    ok le voila:

    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
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    Option Explicit
    Option Compare Text
     
    Sub verifier()
    '*************************************************************************************************************************
    '                                               Déclarations
    '*************************************************************************************************************************
    Dim fso As Scripting.FileSystemObject
    Dim SourceFolder As Scripting.Folder
    Dim FileItem As Scripting.File
     
    Dim feuille As Worksheet
    Dim feuilleCRAH As Worksheet
     
    Dim wb As Workbook
    Dim oWin As Window
     
    Dim NomFeuille As String, NomFeuille1 As String
    Dim NomRessource As String, NomRessource1 As String, NomRessource2 As String
    Dim PrenomRessource As String
    Dim Repertoire As String
    Dim NomFichier As String
    Dim Chemin As String
     
    Dim DateCrah As Variant, DateCRAH1 As Variant
    Dim DateRMA As Variant, DateRMA1 As Variant
     
    Dim ColCRAH As Long, DerColCRAH As Long
    Dim ColRMA As Long, DerColRMA As Long
    Dim LigRMA As Long
     
    Dim ValCelRMA As Double, ValCelRMA1 As Double
    Dim SommeRma As Double
    Dim SommeCrah As Double, SommeCRAH1 As Double
    '*************************************************************************************************************************
    '                                               Traitements
    '*************************************************************************************************************************
    Repertoire = Sheets("Parametres").Range("B" & 1).Value
     
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set SourceFolder = fso.GetFolder(Repertoire)
     
     
    'boucle sur toutes les feuilles du classeur
    For Each feuille In Application.ActiveWorkbook.Worksheets
     
        'recuperer le nom de la ressource a partir du nom de la feuille CRAH, et enlever les espaces
        NomFeuille1 = feuille.Name
        NomFeuille = Replace(NomFeuille1, " ", "")
     
        Set feuilleCRAH = Sheets(NomFeuille1)
     
        'boucle sur tous les RMA
        For Each FileItem In SourceFolder.Files
     
            'recuperer
            NomFichier = FileItem.Name
            Chemin = Repertoire & NomFichier
     
            'ouvrir les RMA
            'Workbooks.Open (Chemin)
            Set wb = Workbooks.Open(Chemin)
            For Each oWin In wb.Windows
                oWin.Visible = False
            Next oWin
     
     
            'recuperer les noms des ressources des RMA, en enlevant les espaces et les '-'
            NomRessource1 = Workbooks(NomFichier).Worksheets("Feuil1").Range("B" & 3).Value
            NomRessource2 = Replace(NomRessource1, " ", "")
            NomRessource = Replace(NomRessource2, "-", "")
     
            'recuperer les prenoms des ressources des RMA
            PrenomRessource = Workbooks(NomFichier).Worksheets("Feuil1").Range("B" & 2).Value
     
            'recuperer la derniere colonne du RMA
            DerColRMA = Workbooks(NomFichier).Worksheets("Feuil1").Cells(7, 4).End(xlToRight).Column
     
                'tester si le nom du RMA et CRAH sont egaux
                If NomFeuille = NomRessource Then
     
                    'recuperer la derniere colonne non vide du CRAH
                    DerColCRAH = feuilleCRAH.Cells(2, 3).End(xlToRight).Column
     
                    'boucle les dates du CRAH
                    For ColCRAH = 4 To DerColCRAH - 4
     
                        DateCRAH1 = feuilleCRAH.Cells(2, ColCRAH).Value
                        DateCrah = Right(DateCRAH1, 2)
     
                        'Boucle sur les dates du RMA
                        For ColRMA = 4 To DerColRMA
                            feuilleCRAH.Activate
                            DateRMA1 = Workbooks(NomFichier).Worksheets("Feuil1").Cells(7, ColRMA).Value
     
                            'recuperer la date du RMA a travers la fonction tester
                            DateRMA = tester(DateRMA1)
     
                            'tester si la date du CRAH et du RMA sont egaux
                            If DateCrah = DateRMA Then
                                If Workbooks(NomFichier).Worksheets("Feuil1").Cells(7, ColRMA).Interior.ColorIndex = 6 Then
                                    Else
                                        SommeRma = 0
                                            For LigRMA = 9 To 28
                                                If Workbooks(NomFichier).Worksheets("Feuil1").Cells(LigRMA, ColRMA).Value <> " " Then
                                                    ValCelRMA1 = Workbooks(NomFichier).Worksheets("Feuil1").Cells(LigRMA, ColRMA).Value
                                                    ValCelRMA = Replace(ValCelRMA1, " ", "")
                                                    SommeRma = SommeRma + ValCelRMA
                                                End If
                                            Next LigRMA
                                        SommeCRAH1 = feuilleCRAH.Cells(50, ColCRAH).Value
                                        SommeCrah = Replace(SommeCRAH1, " ", "")
                                        If SommeRma = SommeCrah Then
                                            'ne rien faire
                                            Else
                                                'appeller la fonction creer, pour creer le nouveau classeur ou le remplir s'il existe deja
                                                Call creer(NomRessource1, PrenomRessource, DateCRAH1, SommeCrah, SommeRma)
                                        End If
                                End If
                            End If
                        Next ColRMA
                    Next ColCRAH
                End If
            'fermer le RMA
            Workbooks(NomFichier).Close savechanges:=False
        Next
    Next feuille
     
    End Sub

Discussions similaires

  1. ouvrir un classeur excel via un code sql
    Par chamus dans le forum Access
    Réponses: 19
    Dernier message: 10/01/2007, 18h54
  2. ouvrir un classeur excel à partir d'un nom variable
    Par abu143 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 30/10/2006, 22h53
  3. [vba-excel] ouvrir des classeurs excel
    Par ash_rmy dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/10/2006, 16h28
  4. [vb6]ouvrir un classeur excel
    Par mcay dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 28/09/2006, 11h33
  5. Excel Comment ouvrir un classeur à la Feuil1
    Par Lexot2 dans le forum Excel
    Réponses: 4
    Dernier message: 30/08/2006, 12h45

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