Aide visual basic et excel

Résolu
debutante-excel Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   -  
debutante-excel Messages postés 195 Date d'inscription   Statut Membre Dernière intervention   -
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   Statut Contributeur Dernière intervention   646
 
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   Statut Membre Dernière intervention   11
 
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