Problème sauvegarde fichier avec lettre de lecteur réseau différent

Dohko10270

XLDnaute Nouveau
Bonjour,

Je suis confronté à un problème que je n'arrive pas à résoudre.

J'ai créer une macro sous excel qui me sert à copier mon fichier sur mon lecteur réseau ici Z, le souci est que mon collègue aimerai l'utiliser lui aussi mais lui le même chemin de fichier passe par le lecteur S.

J'aimerai donc savoir si il est possible de faire en quelque sorte un fonction ou que je puisse indiquer les deux chemins, par exemple "Z:\Commande JC\ " ou "S:\Commande JC\ "


Sub Sauvegarde()
Dim Rep As Integer
Rep = MsgBox("Voulez vous Sauvegarder les données ?", vbYesNo + vbQuestion, "Info")
If Rep = vbYes Then
' ici le traitement si réponse positive
Dim extension As String
Dim chemin As String, nomfichier As String
Dim style As Integer
Application.ScreenUpdating = False
ThisWorkbook.ActiveSheet.Copy
extension = ".xls"
chemin = "Z:\Commande JC\ "
nomfichier = Range("F1") & " " & Range("E2") & Range("F2") & " " & Range("F15") & extension
With ActiveWorkbook
.SaveAs Filename:=chemin & nomfichier
.Close
End With
Else: Rep = vbNo
' ici le traitement si réponse négative
Cancel = True

End If


Merci.

Cdlt.
 

Pierrot93

XLDnaute Barbatruc
Re : Problème sauvegarde fichier avec lettre de lecteur réseau différent

Bonjour,

plutôt que le lecteur réseau, essaye avec le nom du serveur précédé de 2 anti slash :
Code:
chemin = "\\NomServeur\Commande JC\ "

bonne soirée
@+
 

ERIC S

XLDnaute Barbatruc
Re : Problème sauvegarde fichier avec lettre de lecteur réseau différent

Bonsoir

plusieurs solutions possibles dont prévoir sur une des feuilles les initiales du lecteur (choix Z ou S) imaginons que ce soit en feuil1 A1

chemin = sheets("feuil1").range("A1").value & ":\Commande JC\ "
 
Dernière édition:

Dohko10270

XLDnaute Nouveau
Re : Problème sauvegarde fichier avec lettre de lecteur réseau différent

Merci pour votre aide.

Pierrot, ta solution me génère une erreur pour sauvegarder mon fichier, il semble trouver le chemin mais bloque ici :
.SaveAs Filename:=chemin & nomfichier

Eric, admettons que je prenne ta solution plutot que de choisir un cellule, je préfèrerai a l'appui sur ma macro avoir une fenêtre "choix lecteur réseau" est ce faisable ?

Merci encore.

Cordialement.
 
C

Compte Supprimé 979

Guest
Re : Problème sauvegarde fichier avec lettre de lecteur réseau différent

Salut Dohko10270

Pourquoi ne pas mettre tout simplement le fichier contenant la macro sur le serveur ?
Comme ça pour le chemin il n'y a plus qu'à faire
Code:
Chemin = ThisWorkbook.Path

A+
 

ERIC S

XLDnaute Barbatruc
Re : Problème sauvegarde fichier avec lettre de lecteur réseau différent

Bonjour

je n'ai pas testé le code en entiermais l'idée est là : je garde lapossibilité de figer en A1 mais si la cellule est vide

Code:
Sub e()
'maintien de la possibilité de figer son lecteur en feuil1 A1
'sinon sélectionner son lecteur à chaque fois peut finir par énerver
On Error GoTo sortie
'si rien en A1, question posée
lecteur = Sheets("Feuil1").Range("A1").Value
If lecteur = "" Then
    lecteur = InputBox("Entrez votre lecteur si différent du lecteur par défaut", "CHOIX DU LECTEUR", "Z")
    If lecteur = "" Then
        MsgBox "aucun lecteur sélectionné - abandon"
        'cancel=true ' voir si besoin de valider
        Exit Sub
    End If
End If
'sauvegarde
With ActiveWorkbook
 .SaveAs Filename:=lecteur & ":\Commande JC\ " & nomfichier
 .Close
 End With
Exit Sub
'sortie si lecteur n'existe pas
sortie:
MsgBox "le lecteur désigné n'est sans doute pas valide"
'cancel = True 'voir si besoin de valider
End Sub
 
C

Compte Supprimé 979

Guest
Re : Problème sauvegarde fichier avec lettre de lecteur réseau différent

Salut Eric S

Ou si notre ami n'a qu'un lecteur réseau ;)
Code:
Sub Sauvegarde()
  Dim Rep As Integer
  Rep = MsgBox("Voulez vous Sauvegarder les données ?", vbYesNo + vbQuestion, "Info")
  If Rep = vbYes Then
    ' ici le traitement si réponse positive
    Dim extension As String
    Dim Lecteur As String, chemin As String, nomfichier As String
    Dim style As Integer
    Application.ScreenUpdating = False
    ' Trouver le leceur réseau
    Lecteur = LecteursInstallés(3)
    ' Vérifier ce qui a été trouvé
    If Len(Lecteur) = 0 Then
      MsgBox "Aucun lecteur réseau trouvé", vbCritical, "OUPS ..."
      Exit Sub
    ElseIf Len(Lecteur) > 2 Then
      Lecteur = InputBox("Lequel de ces lecteurs :" & Lecteur)
      If Right(Lecteur, 1) <> ":" Then Lecteur = Lecteur & ":"
    End If
    extension = ".xls"
    chemin = Lecteur & "Commande JC\"
    nomfichier = Range("F1") & " " & Range("E2") & Range("F2") & " " & Range("F15") & extension
    ' Copier la feuille active dans un nouveau classeur
    ThisWorkbook.ActiveSheet.Copy
    With ActiveWorkbook
      .SaveAs Filename:=chemin & nomfichier
      .Close
    End With
  Else: Rep = vbNo
    ' ici le traitement si réponse négative
    'Cancel = True
  End If
End Sub


Function LecteursInstallés$(TypeLecteur%)
  Dim S As String
  'Types de lecteur dans FileSystemObject :
  'Amovible = 1, Fixe = 2, Réseau = 3, CDROM = 4, RAMDisk = 5
  Dim fso As Object, Lecteur As Object
  Set fso = CreateObject("Scripting.FileSystemObject")
  For Each Lecteur In fso.Drives
    If Lecteur.DriveType = TypeLecteur Then
      S = S & Lecteur.DriveLetter & ":" & vbLf
    End If
  Next
  LecteursInstallés = S
End Function

A+
 

Discussions similaires

Statistiques des forums

Discussions
312 085
Messages
2 085 196
Membres
102 814
dernier inscrit
JLGalley