Aide visual basic et excel

Résolu/Fermé
debutante-excel Messages postés 195 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 31 mars 2011 - 30 avril 2009 à 17:13
debutante-excel Messages postés 195 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 31 mars 2011 - 1 mai 2009 à 00:08
Bonjour,

Voici mon problème,

j'ai un classeur excel qui possède une macro en VB, dont voici le code.

Option Explicit
Const wDemandePath As String = "C:\Test\" ' doit se terminer par \
Const wDemandeNomF As String = "Fichier du "
Const wDemandeNomV As String = "$B$1"
Sub SavDemande()
Dim nomFich As String, i As Long, j As Long
nomFich = Range(wDemandeNomV)
If Not IsDate(nomFich) Then
i = MsgBox("'" & nomFich & "' n'est pas une date valide.", vbCritical + vbOKOnly)
Exit Sub
End If
i = InStr(nomFich, "/")
j = InStr(i + 1, nomFich, "/")
nomFich = Mid(nomFich, j + 1) & "-" & Mid(nomFich, i + 1, j - i - 1) & "-" & Left(nomFich, i - 1)
nomFich = wDemandePath & wDemandeNomF & nomFich & ".xls"
ActiveWorkbook.SaveAs Filename:=nomFich
End Sub

Cette macro permet de créer un classeur dont une partie du nom du fichier est contenu dans la cellule B1.

Je voudrai modifier cette macro pour que le string du fichier puisse être modifier.

Je voudrai rajouter un sous-catalogue à C:\Test\

Le nom du sous catalogue serait en cellule A1.

On pourrait le remplacer à la place de : Const wDemandeNomF As String = "Fichier du "

Je connais rien à VB.

Est-il possible d'avoir de l'aide.

Merci d'avance.
A voir également:

2 réponses

pilas31 Messages postés 1825 Date d'inscription vendredi 5 septembre 2008 Statut Contributeur Dernière intervention 24 avril 2020 644
30 avril 2009 à 17:25
Bonjour,

A essayer :
Option Explicit
Const wDemandePath As String = "C:\Test\" ' doit se terminer par \
Const wDemandeNomF As String = "Fichier du "
Const wDemandeNomV As String = "$B$1"
Const wDemandeSousC As String = "$A$1"
Sub SavDemande()
Dim nomFich As String, i As Long, j As Long , nomSousC As String
nomSousC = Range(wDemandeSousC)
nomFich = Range(wDemandeNomV)
If Not IsDate(nomFich) Then
i = MsgBox("'" & nomFich & "' n'est pas une date valide.", vbCritical + vbOKOnly)
Exit Sub
End If
i = InStr(nomFich, "/")
j = InStr(i + 1, nomFich, "/")
nomFich = Mid(nomFich, j + 1) & "-" & Mid(nomFich, i + 1, j - i - 1) & "-" & Left(nomFich, i - 1)
nomFich = wDemandePath & nomSousC & wDemandeNomF & nomFich & ".xls"
ActiveWorkbook.SaveAs Filename:=nomFich
End Sub

Voila dans l'esprit de ce qui existe déja. en A1 le nom du sous catalogue doit être de la forme TOTO\

A+
0
debutante-excel Messages postés 195 Date d'inscription mardi 26 février 2008 Statut Membre Dernière intervention 31 mars 2011 11
1 mai 2009 à 00:08
Bonsoir Pilas31,

Je viens de faire le test. Ca marche. C'est super.

C'est exactement ce que je voulais.

Merci beaucoup de votre aide.

Bon WE.
0