Aide visual basic et excel [Résolu/Fermé]

Signaler
Messages postés
195
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
31 mars 2011
-
debutante-excel
Messages postés
195
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
31 mars 2011
-
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.

2 réponses

Messages postés
1866
Date d'inscription
vendredi 5 septembre 2008
Statut
Contributeur
Dernière intervention
13 février 2020
549
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+
Messages postés
195
Date d'inscription
mardi 26 février 2008
Statut
Membre
Dernière intervention
31 mars 2011
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.