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 :

Génération de Reportings


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Par défaut
    Bonjour à tous,
    je suis un novice en vba, et du coup je m'excuse par avance des questions basiques que je vais poser, et j'espère que je ne vous énerverai pas trop.

    Pour le travail je dois créer sur une feuille excel, un outil pour générer les reporting mensuels de chaque centre, et les stocker dans un dossier correspondant au mois en question.
    J'ai donc créé la liste de tous les centres avec une checkbox affectée à chaque centre. J'aimerai que quand la checkbox est cochée, que cela génère le reporting correspondant au centre en question directement dans le bon dossier. Tous les reportings sont sur la même base et proviennent d'un même document de base qui sera modifié en fonction du centre sélectionné.

    Je ne sais pas si tout ça est très clair, mais si vous avez des questions pour éclaircir certains points n'hésitez pas.

    Merci d'avance pour vos réponses

    Drozdov

    Bon en fait pour être plus précis, j'aimerais connaitre le code pour faire toutes ces actions successives:

    - Ouvrir le fichier source qui est le fichier base de tous les reportings
    - le mettre à jour avec le bon mois
    - l'enregistrer sous le nom correspond au nom du centre en question
    - puis refermer le fichier

    En espérant que quelqu'un puisse m'aider

    Merci d'avance!

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Par défaut
    Bonjour, bon je vois que mon problème de débutant n'intéresse pas grand monde et ça se comprend j'imagine

    Néanmoins j'ai un début de code, qui ne fonctionne pas pour le moment.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Private Sub CommandButton1_Click()
    If CheckBox3.Value = True Then Workbooks.Open Filename:="XXX"
        ActiveWorkbook.SaveAs Filename:="YYY"
        ActiveWindow.Close
    If CheckBox3.Value = False Then [J'aimerais bien mettre l'action de ne rien faire]
    End Sub
    En gros si la checkbox est cliquée je voudrais ouvrir le document source et l'enregistrer dans le dossier voulu (cette étape marche bien) par contre si la checkbox n'est pas cliquée je voudrais qu'il ne se passe rien. Or pour le moment cela enregistre quand même le document dans le dossier cible.
    De plus j'aimerais également changer la valeur d'une cellule dans le document source avant de l'enregistrer avec son nouveau nom mais quand je fais un code du style
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Windows ("XXX").Activate
    Sheets("ZZZ").Select
    Range("S2").Value=AAA
    Cela modifie la cellule S2 du fichier où est créé ma macro et non celle du document de base.

    Merci de votre aide, en espérant qu'une âme charitable vienne à mon secours avec mon problème que j'imagine très basique

  3. #3
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Remplace ton code par ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub CommandButton1_Click()
    If CheckBox3.Value = True Then
       Workbooks.Open Filename:="XXX"
      ActiveWorkbook.SaveAs Filename:="YYY"
      ActiveWindow.Close
    end if
    End Sub
    Comme ça tu fais seulement si la case est cochée.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Cela modifie la cellule S2 du fichier où est créé ma macro et non celle du document de base.
    Normal car tu viens d'ouvrir un autre document, pour avoir accès au document dans lequel se trouve ta macro, utilises Thisworkbook.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thisworkbook.workSheets("ZZZ").Range("S2")=AAA

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Par défaut
    Parfait merci beaucoup pour ta réponse qui me débloque bien

    Pour le première partie ça marche parfaitement; par contre quand je veux rajouter la partie sur la modification de la cellule S2, il y a un message d'erreur.
    En fait je ne veux pas modifier la cellule S2 du document où se trouve la macro, mais la cellule S2 du document ouvert par la macro. Peut-être que le problème vient de là.

    A moins que j'ai mal placé le code correspondant. Ce qui est fortement possible.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Private Sub CommandButton1_Click()
     
    If CheckBox3.Value = True Then
        Workbooks.Open Filename:="XXX"
        ThisWorkbook.Worksheets("AAA").Range("S2") = "Bordeaux"
        ActiveWorkbook.SaveAs Filename:="YYY"
        ActiveWindow.Close
    End If
    End Sub

  5. #5
    Membre Expert Avatar de aalex_38
    Inscrit en
    Septembre 2007
    Messages
    1 631
    Détails du profil
    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 631
    Par défaut
    Bonjour,

    Pour t'y retrouver tu peux instancier tes classeurs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim wb1 As Workbook, wb2 as workbook
    dim Fichier as string
    Fichier = "xxx"
     
    set wb1 = thisworkbook 'classeur contenant la macro 
    Set wb2 = Workbooks.Open(Filename:=Fichier)  'classeur que tu ouvres
    wb2.Worksheets("AAA").Range("S2") = "Bordeaux" 
    wb2.SaveAs Filename:="YYY"
    wb2.Close

  6. #6
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 7
    Par défaut
    Bonjour,

    Merci beaucoup ça marche parfaitement!

    J'ai juste un dernier truc à changer, un truc tout basique je suppose, c'est le nom du fichier de sauvegarde. Il faudrait que ce ne soit non plus un chemin 'en dur' mais un chemin qui est inscrit dans une cellule. (car le chemin va changer pour chaque mois)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Dim wb1 As Workbook, wb2 as workbook
    dim Fichier as string
    Fichier = "xxx"
     
    set wb1 = thisworkbook 'classeur contenant la macro 
    Set wb2 = Workbooks.Open(Filename:=Fichier)  'classeur que tu ouvres
    wb2.Worksheets("AAA").Range("S2") = "Bordeaux" 
    wb2.SaveAs Filename:="YYY" '
    wb2.Close
    Encore merci, tu m'aides vraiment beaucoup!

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

Discussions similaires

  1. Génération des reports en XML
    Par mb240579 dans le forum PL/SQL
    Réponses: 0
    Dernier message: 18/02/2010, 15h31
  2. [Checkstyle] [maven] probleme génération de report checkstyle
    Par dodi84 dans le forum Qualimétrie
    Réponses: 2
    Dernier message: 02/10/2009, 17h05
  3. Réponses: 1
    Dernier message: 25/05/2009, 01h36
  4. [VS2005] Génération Crystal Report
    Par stringman62 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/07/2008, 08h23
  5. Réponses: 3
    Dernier message: 24/07/2006, 14h54

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