Création/nomination d'un dossier/fichier selon une variable
Résolu
Cayl93
Messages postés
6
Statut
Membre
-
Cayl93 Messages postés 6 Statut Membre -
Cayl93 Messages postés 6 Statut Membre -
Bonjour à tous!
Je commence à apprendre le VBA afin de créer des applications pour mon travail et présentement, je suis coincé:
Dans une feuille, je souhaite lorsqu'on fait un double clique sur une case de la colonne G et qu'il y a le mot «Faire» dans celle-ci, que plusieurs onglets masqués du classeur soient enregistrer dans un nouveau classeur dans un nouveau dossier et que le nom du nouveau classeur et du nouveau dossier soit définit par la valeur de la cellule sur la même ligne mais dans la colonne C.
Je ne sais pas si je suis claire?
Voici en étape ce que je voudrais faire:
1. Double clique sur une case;
2. Vérifier si le mot «Faire» est dans la cellule;
3. Si oui, démasquer les onglets vises;
4. Copier les onglets démasqués;
5. Créer le nouveau dossier et le nommer selon la case C de la même ligne;
6. Créer le nouveau classeur et le nommer selon la case C de la même ligne;
7. Masquer les onglets démasqués.
Merci à l'avance! :)
Je commence à apprendre le VBA afin de créer des applications pour mon travail et présentement, je suis coincé:
Dans une feuille, je souhaite lorsqu'on fait un double clique sur une case de la colonne G et qu'il y a le mot «Faire» dans celle-ci, que plusieurs onglets masqués du classeur soient enregistrer dans un nouveau classeur dans un nouveau dossier et que le nom du nouveau classeur et du nouveau dossier soit définit par la valeur de la cellule sur la même ligne mais dans la colonne C.
Je ne sais pas si je suis claire?
Voici en étape ce que je voudrais faire:
1. Double clique sur une case;
2. Vérifier si le mot «Faire» est dans la cellule;
3. Si oui, démasquer les onglets vises;
4. Copier les onglets démasqués;
5. Créer le nouveau dossier et le nommer selon la case C de la même ligne;
6. Créer le nouveau classeur et le nommer selon la case C de la même ligne;
7. Masquer les onglets démasqués.
Merci à l'avance! :)
A voir également:
- Création/nomination d'un dossier/fichier selon une variable
- Fichier bin - Guide
- Comment réduire la taille d'un fichier - Guide
- Comment ouvrir un fichier epub ? - Guide
- Fichier rar - Guide
- Dossier appdata - Guide
Avec mes recherches sur internet, j'ai pu faire ça:
Sub CreationDC()
Dim Cal As Worksheet
Dim NC As String
Dim NI As String
Dim Sexe As String
Set Cal = Worksheets("Calendrier")
Sexe = Cells(ActiveCell.Row, 3).Value
NC = Cells(ActiveCell.Row, 4).Value
NI = Cells(ActiveCell.Row, 1).Value
If Dir("H:\Dossiers Intégra\" & NC, vbDirectory) = "" Then
For Each FM In Array("PV", "LP1", "P", "Comm", "LFSC.", "LFACSP.", "LFAC1", _
"LFAC2", "Final", "RF", "RP", "FT")
Sheets(FM).Visible = True
Next FM
Sheets(Array("PV", "LP1", "P", "Comm", "LFSC.", "LFACSP.", "LFAC1", _
"LFAC2", "Final", "RF", "RP", "FT").Copy
MkDir "H:\DI\" & NC
ChDir "H:\DI\" & NC
ActiveWorkbook.SaveAs filename:=NC, FileFormat:=xlOpenXMLWorkbookMacroEnabled
Sheets("LP1").Visible = False
Sheets("LP2").Visible = False
Sheets("Projet").Visible = False
Sheets("Comm").Visible = False
Sheets("LFSC").Visible = False
Sheets("LFACSP").Visible = False
Sheets("LFAC1").Visible = False
Sheets("LFAC2").Visible = False
Sheets("Final").Visible = False
Sheets("RF").Visible = False
Sheets("RP").Visible = False
Sheets("FT").Visible = False
Sheets("PV").Range("C1").Value = NC
Sheets("PV").Range("C3").Value = NI
Cal.Activate
For Each FM In ArrayArray("PV", "LP1", "P", "Comm", "LFSC.", "LFACSP.", "LFAC1", _
"LFAC2", "Final", "RF", "RP", "FT")
Sheets(FM).Visible = False
Next FM
Workbooks(NC & ".xlsm").Activate
ActiveSheet.Range("D2").Value = Sexe
End If
End Sub
À date ça semble marcher, bien que je crois que je pourrais le rendre plus propre... Ou si tu as une autre idée, je suis preneur! :)
Si cela fonctionne c'est parfait car sans le classeur c'est difficile d'améliorer.
Cependant ta liste "Sheets("LP1").Visible = False ...Sheets("FT").Visible = False"
parait inutile car tu refais de même dans ta boucle suivante.
Par contre, tu pourrais peut-être répondre `cette question:
Pourquoi Est-ce que pour ma dite liste ne fonctionne pas avec la méthode
Sheets(Array("LP", ..., "FT")).Visible = False ?
Pour qu'elle fonctionne il faut qu'il reste une feuille visible sinon elle ne peut s'exécuter. Ceci doit fonctionner :