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 :

Sauvegarde, création de fichier et vérification de l'existant en fonction d'une liste déroulante [XL-2010]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut Sauvegarde, création de fichier et vérification de l'existant en fonction d'une liste déroulante
    Bonjour,

    Cela fait déjà quelques temps que je suis sur ce projet et j'avoue que là je coince un peu..
    En effet, après avoir arpenté tout le web à la recherche de cette solution je viens vous implorer

    Je m'explique (voir le fichier qui sera joint). Voilà donc un planning, où les salariés, les mois, et les années sont renseignés.
    Tout au long de l'année on peut renseigner des informations, notamment par jour ou des listes déroulantes sont présentes.
    Dans ces listes des données sont renseignées (elles viennent de l'onglet Données), une fois tout ça rempli il y a un petit récap (Récap_annuel) qui permet d'afficher le bilan de l'année. J'en arrive au problème..
    Une fois que mon planning me convient j'ai le choix en haut à gauche d'une liste déroulante en fonction des années, me permettant ainsi de naviguer d'un planning à l'autre. Actuellement le fait de changer d'année fait une sauvegarde du planning existant (année n), m'ouvre une nouveau planning (année n+1) donc jusque là c'est cool ! Sauf que ce que j'aimerai, c'est que si par exemple je suis sur le planning de l'année n+1 ou n+n, et que je clique sur l'année n-1 ou n donc le fichier précédent ou le premier, il ne me recréer pas un nouveau fichier (ce qui se passe actuellement) m'écrasant ainsi toutes les données.. De même que pour le moment il me créé un fichier avec incrémentation mais ne le met pas dans le dossier que je désire (nul par d'ailleurs ) ce qui est mon deuxième problème.
    En espérant ne vous avoir pas perdu .
    La bonne journée !

    Planning de presence 2017.xls

  2. #2
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Je m'explique (voir le fichier qui sera joint)
    Lis ceci :
    https://www.developpez.net/forums/d8...s-discussions/
    ainsi que le texte de ma signature
    et reviens s'il te plait avec un exposé technique clair et précis des tenants et aboutissants et accompagné du code tenté pour résoudre ta difficulté (à isoler).

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2017
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 29
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2017
    Messages : 2
    Par défaut
    Autant pour moi.

    Donc voilà le traitement et les problèmes liés qui se trouve dans le code VBA de l'onglet Reccap_annuel.
    Voici mon onglet Excel :

    Nom : reccap_annuel.jpg
Affichages : 403
Taille : 247,2 Ko

    Voici le code que j'ai en fonction cet onglet :

    Code vba : 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
    Private Sub Worksheet_Change(ByVal Target As Range)
     
    On Error GoTo sauverfichier
     
     
    If Not Intersect(Target, [A1]) Is Nothing Then
        Dim wb As Workbook
     
        Dim valeur, repertoire, document As String
     
        valeur = "Planning de presence " & Range("A1").Value & ".xls"
        document = repertoire & valeur
     
        MsgBox ("Le fichier : " & valeur & " a bien été créé")
     
     
    'If Dir(document, vbNormal) <> "" Then
        Workbooks.Open (document)
            For Each wb In Workbooks
                Name = wb.Name
                If Len(Name) >= 20 And Mid(Name, 1, 20) = "Planning_de_presence" Then
                    If Not wb Is ActiveWorkbook Then
                        wb.Close False
                    End If
                End If
            Next
    End If
    Exit Sub
     
    sauverfichier:
     
            ActiveWorkbook.SaveAs (document)
             For Each wb In Workbooks
                Name = wb.Name
                If Len(Name) >= 20 And Mid(Name, 1, 20) = "Planning_de_presence" Then
                    If Not wb Is ActiveWorkbook Then
                        wb.Close False
                    End If
                End If
            Next
        'End If
    End Sub



    Actuellement le code recréé un nouveau classeur Excel avec toutes les donnés présentes dans le premier, incrémente l'année et le sauvegarde.
    Je pense que j'ai oublié un morceau de code indiquant l'endroit pour la sauvegarde et je ne sais pas comment faire pour naviguer entre les différents fichiers (exemple Planning de presence 2017/2018/...). Quand je change la valeur dans la liste déroulante il sauvegarde à chaque fois, c'est surement un condition manquante, chose que je ne veux pas si le fichier existe déjà dans le dossier ou se trouve le fichier de base (Planning de presence 2017) car ça écrase les données. La finalité du traitement serait :
    1- Quand je change d'année, créé un nouveau planning et l'enregistre dans le dossier de base.
    2- Si je décide de retourner sur un planning existant, il ne refait pas la sauvegarde et m'ouvre le fichier correspondant.
    Je sais qu'il doit y avoir des erreurs et des oublis dans mon code empêchant la finalité attendue, mais je n'arrive pas à les trouver..
    Je viens vous demander votre aide car je n'ai pas trouvé ce que je voulais sur internet.

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

Discussions similaires

  1. [AC-2007] Création d'état en fonction d'une liste déroulante
    Par Wanaka dans le forum IHM
    Réponses: 2
    Dernier message: 01/10/2009, 00h02
  2. Réponses: 5
    Dernier message: 29/06/2009, 11h57
  3. [XSLT] Générer une liste déroulante à partir d'un fichier xml ?
    Par chipster45 dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 30/03/2007, 09h59
  4. choisir un fichier .js à éxécuter en fonction d'une liste
    Par bikerman dans le forum Général JavaScript
    Réponses: 16
    Dernier message: 10/04/2006, 14h48
  5. Réponses: 5
    Dernier message: 13/10/2005, 10h19

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