Menu déroulant et ouverture fichier Excel

Résolu/Fermé
scarabee10 - 20 juil. 2010 à 09:59
 scarabee10 - 20 juil. 2010 à 23:27
Bonjour,

Je reformule un problème qui n'a pas eu beaucoup de succès auparavant. J'ai un tableau d'évaluation annuel, dont les cases doivent être redirigés vers les évaluations correspondantes (d'autres fichiers Excel). Exemple :

Je clique sur une cellule vierge du tableau, j'aimerais atterir sur un menu déroulant me demandant de chosir parmi une liste de fichiers (plusieurs types d'évaluation). Une fois le choix validée, le fichier en question s'ouvre, l'accompagnateur remplit sa fiche et clique sur un bouton Save sur la feuille.

Ce bouton Save doit être l'équivalent d'un "Enregistrer Sous" mais qui renomme le fichier en fonction du nom de l'accompagnateur, de l'accompagné et de la date, infos récupérables sur la même feuille.

Une fois le fichier enregistré, le texte dans le lien hypertexte de la case initiale (dans le tableau, vous suivez toujours ? ) doit contenir la date de l'évaluation, récupérable soit du fichier en lui même soit de son nom. Mais là ça dépend de ce qui est faisable ou pas.

Comment coder tout cela ?

J'attends vos réponses/suggestions avec enthousiasme.

Cordialement


2 réponses

pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 695
20 juil. 2010 à 12:24
Bonjour,
Là tu nous en demandes beaucoup...
Bon commençons par le commencement. Voici un classeur exemple le processus :
1- Tu va ouvrir un nouveau classeur excel et l'enregistrer sous "Evaluations annuelles.xls"
2- Dans ce classeur, à l'aide de la barre d'outils : "Boîte à outils contrôles" tu va dessiner dans la feuille "Feuil1" :
- 1 zone de liste déroulante
- 1 bouton de commande
3- clic droit sur le bouton de commande/Objet bouton de commande/Editions ; renomme le "Charger liste" puis clic gauche n'importe ou dans la feuille.
4- double clic sur le bouton, une fenêtre Visual Basic s'ouvre avec ces deux lignes de code :
Private Sub CommandButton1_Click()

End Sub


inscrire entre ces deux lignes le code pour obtenir :
Private Sub CommandButton1_Click()

'http://www.commentcamarche.net/faq/16109-excel-convertir-fichier-s-csv-xls#lire-tout-les-fichiers-du-repertoir-specifie

Dim fs, F, f1, s, sf
ComboBox1.Clear
   Dim Chemin As String
   Chemin = Range("B1").Value

    Set fs = CreateObject("Scripting.FileSystemObject")
    Set F = fs.GetFolder(Chemin)
    Set sf = F.Files
    For Each f1 In sf
        ComboBox1.AddItem f1.Name
    Next

End Sub


En dessous du End Sub de ce code copier/ coller celui ci :

Private Sub ComboBox1_Change()
Dim Chemin, Nomfic, fichier As String
Chemin = Sheets("Feuil1").Range("B1").Value
If ComboBox1.Value = "" Then Exit Sub
Nomfic = ComboBox1.Value
fichier = Chemin & "\" & Nomfic
Workbooks.Open fichier
End Sub


5- Fermer la fenêtre Visual Basic.
6- Dans la barre d'outils Boîte à outils contrôles cliquer sur Désactiver le mode création enregistrer le fichier.

7- En A1 de cette même feuille écris : "Chemin :"
en B1 tu écriras le chemin d'accès du répertoire contenant toutes tes fiches. [Il est important que toutes soient situées dans le même répertoire]
exemple de chemin d'accès : C:\Mes Documents\Travail\Evaluations


8- Cliquer sur le bouton "Charger liste" et tester en faisant un choix dans la liste déroulante
0
Merci pikaku, ça fonctionne parfaitement. J'ai simplifié mon idée, j'ai mis en dessous du tableau une seule liste déroulante pour saisir une nouvelle fiche.

Maitenant il me reste à créer le bouton de sauvegarde sur chaque fiche, et en fonction du nom de l'accompagnateur, du nom de l'agent et de la date, créer le lien hypertexte correspondant dans la case correspondante du tableau. Je sens que ça va être casse tête !

J'ai déjà mis un bouton "Save" qui enregistre sous, mais il me faut rajouter du code pour récupérer automatiquement les infos à mettre dans le nom. Idem pour le lien hypertexte sauf que là il faut aller chercher les infos dans un autre fichier Excel (le tout dans le même dossier bien sûr).

Des idées ?

Merci d'avance.
0
pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 695
Modifié par pijaku le 20/07/2010 à 15:16
Pour le bouton save, une piste consiste à créer un userform.
https://www.cjoint.com/?hupn5iD4Qi
pour le reste, dans l'idéal, il faudrait que tu nous communique une copie de ton classeur sans données confidentielles avec https://www.cjoint.com/ par exemple
0
Je n'ai pas bien compris l'utilité du userform. Je vous joins mon tableau, toute remarque est la bienvenue, et surtout comment je pourrais réaliser ce que j'ai décris plus haut :)
Lien: https://www.cjoint.com/?hupASGtrmD

Merci.
0
Pour info, le chemin et le bouton "charger liste" sont sur la 2ème feuille
0
pijaku
Messages postés
12257
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
3 septembre 2021
2 695
20 juil. 2010 à 15:36
merci de sauvegarder votre fichier sous .xls, je ne dispose pas de 2007....
0