Chemin du classeur différent
Bonjour a tous,
je viens de développer une macro pour faire un copier coller de certaines cellules d'un onglet du classeur vers une autre onglet d'un autre classeur comme vous pouvez le voir ici :
ce que je veux améliorer c'est que le chemin est diffèrent d'une pc à un autre, c'est a dire il peut s'appeler D, E , H ou n'importe quelle lettre,
comment faire pour la macro prends en considération cela
merci pour votre aide
' '''''''''''''''''''''''''''''''Copier les cases Q4 à Q14 et Coller les valeurs des cases Q4 à Q14
'du fichier TRAVAUX dans les lignes 4 à 14 du mois correspondant du fichier Reporting mensuel maintenance''''''''''''''''''''''''
Sub copierQ4q14()
Sheets("statistiques").Select
Range("q4:q14").Select
Selection.Copy
Dim Chemin As String, NomFichier As String
Dim disque As Integer
Chemin = "D:\fichier travaux-macros\Nouveau dossier\"
NomFichier = "Reportinggggg mensuel maintenance.xlsx"
Workbooks.Open Filename:=Chemin & NomFichier
Sheets("données 2021").Select
Range("f4:f14").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Bonsoir
il peut y avoir plusieurs réponses possible.
soit on demande à l'utilisateur de choisir le dossier via un pop-up... avec la fonction suivante
Function ChoixDossier()
If Val(Application.Version) >= 10 Then
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Choisir le dossier de destination"
.InitialFileName = ActiveWorkbook.Path & "\"
.Show
If .SelectedItems.Count > 0 Then
ChoixDossier = .SelectedItems(1)
Else
ChoixDossier = ""
End If
End With
Else
ChoixDossier = InputBox("Répertoire?")
End If
End FunctionAvec un appel de la fonction... pour toi remplacer
Chemin = "D:\fichier travaux-macros\Nouveau dossier\"par
Chemin = choixDossier()soit une autre possibilité, le dossier rechercher est par exemple le dossier où se trouve le fichier exécutant la macro.. à ce niveau là on peut utiliser par exemple
chemin = thisworkbook.pathFred
Bonsoir FRED,
merci pour ton temps,
mais je pense que tu n'as pas bien compris mon besoin,
en faite je souhaite que le classeur qui se trouve dans un répertoire variable soit ouvert automatiquement,
la fonction que t'as crée après l'avoir exécuté m'oblige a aller prendre le dossier,
mais par contre j'ai réussi a développer mon code en testant l'existence des diffèrent répertoires et ça marche :
' '''''''''''''''''''''''''''''''Copier les cases Q4 à Q14 et Coller les valeurs des cases Q4 à Q14'du fichier TRAVAUX dans les lignes 4 à 14 du mois correspondant du fichier Reporting mensuel maintenance''''''''''''''''''''''''
Sub copierQ4q14()Sheets("statistiques").SelectRange("q4:q14").SelectSelection.CopyDim Chemin As String, NomFichier As String, Chemin1 As StringNomFichier = "Reportinggggg mensuel maintenance.xlsx"Chemin = "C:\fichier travaux-macros\Nouveau dossier\"Chemin1 = "D:\fichier travaux-macros\Nouveau dossier\"If Dir(Chemin, vbDirectory + vbHidden) <> "" ThenWorkbooks.Open Filename:=Chemin & NomFichierSheets("données 2021").SelectRange("f4:f14").SelectSelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseElseWorkbooks.Open Filename:=Chemin1 & NomFichierSheets("données 2021").SelectRange("f4:f14").SelectSelection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _:=False, Transpose:=FalseEnd IfEnd Submerci
imad
Bonjour
Dans ce cas...
Fred