chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009
-
2 sept. 2008 à 20:58
chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009
-
3 sept. 2008 à 15:24
Bonjour,
Je veux copier et renommer un répertoire avec des fichiers qui sont toujours dans le même répertoire maître, mais qui ont des noms différents. Lorsque je clique sur un bouton rattaché à la macro, il faut qu'il prenne le numéro de soumission de cette ligne et la description comme recherche de nom de répertoire et que par la suite il le renomme avec le numéro de projet et la description et qu'il copie ces fichiers à l'emplacement que je lui ai donné. Voici la macro :
Sub Soumission_acceptée()
'Macro créée le 28 août 2008 par Chantal Caron
'Définition des variables
Dim index, projet, nomsoum, nsoumission
Dim LigneACopier As Long
Dim Reponse As Long
Dim Result As Range: Dim LigneSelected As Long
Dim fd As FileDialog
Set fd = Application.FileDialog(msoFileDialogFolderPicker)
Dim FSO As New FileSystemObject
Dim chemin As Variant
Dim cheminsoum As String
Dim chemintemps As String
'Inscription des spécifications du projet
Sheets("Échéanciers").Select
Range("F1").Select
index = ActiveCell.Value
ActiveCell.FormulaR1C1 = index + 1
Range("C" & index - 1).Select
projet = ActiveCell.Value
projet = Right(projet, 4) + 1
projet = "R" & IIf((projet < 1000), "0", vbNullString) & projet
MsgBox "Nouveau projet :" & projet
Range("C" & index).Select
ActiveCell.FormulaR1C1 = projet
'On sélectionne la feuille
Sheets("Liste des soumissions").Select
'On demande de sélectionner une ligne
Set Result = Application.InputBox("Sélectionner la description et le nom du client à copier", "Sélection", , , , , », 8)
'On récupère le no de la ligne dans le cas où une cellule est sélectionnée
LigneSelected = Result.Row
'On sélectionne les cellules de la ligne concernée
ActiveSheet.Range("B" & LigneSelected & ":C" & LigneSelected).Select
'On copie
Worksheets("Liste des soumissions").Range("B" & LigneSelected & ":C" & LigneSelected).Copy _
Destination:=Worksheets("Échéanciers").Range("D" & index & ":E" & index)
'Copier du numéro de projet, du client et de la description dans la feuille "Liste des projets"
Sheets("Liste des projets").Select
Range("B2").Select
index2 = ActiveCell.Value
ActiveCell.FormulaR1C1 = index2 + 1
Worksheets("Échéanciers").Range("C" & index).Copy _
Destination:=Worksheets("Liste des projets").Range("A" & index2)
Worksheets("Échéanciers").Range("D" & index).Copy _
Destination:=Worksheets("Liste des projets").Range("B" & index2)
Worksheets("Échéanciers").Range("E" & index).Copy _
Destination:=Worksheets("Liste des projets").Range("C" & index2)
'Copier les dossiers et les renommer
Sheets("Liste des soumissions").Select
Range("G7").Select
cheminsoum = ActiveCell.Value
MsgBox "Sélectionner le répertoire d'enregistrement du projet"
With fd
.InitialFileName = "C:"
If .Show = -1 Then
For Each chemin In .SelectedItems
FSO.CopyFolder cheminsoum, chemin
Name nsoumission & "-" & ("B" & nomsoum) As projet & "-" & ("C" & nomsoum) - Il bloque à cette endroit
chemintemps = chemin & "" & projet & "-" & ("B" & nomsoum) & "Temps et matériel" & projet & " Gestion projet.xls"
Name chemin & "" & projet & "-" & ("B" & nomsoum) & "\Temps et matériel\nsoumission & Gestion projet.xls" As chemintemps
Next chemin
Else
End If
End With
End Sub
À quel endroit je me suis trompé, car il me dit que mon fichier est introuvable et pourtant il est bien dans mon répertoire.
dedenet2
Messages postés372Date d'inscriptionvendredi 27 juillet 2007StatutMembreDernière intervention22 juillet 20132 2 sept. 2008 à 22:30
Salut ,
Difficile à dire , il faudrait le fichier pour le tester.
Par contre , tu écris : nsoumission = Range("A" & nomsoum)
Il faudrait plutôt:
nsoumission = Range("A" & nomsoum).Value
De plus , nsoumission est utilisé à l'endroit où ça bloque.
Vérifie !
A+
chan33
Messages postés36Date d'inscriptionlundi 25 août 2008StatutMembreDernière intervention 5 février 2009 3 sept. 2008 à 15:24
Bonjour,
Le problème en fait c'est que lorsque je lui dit nomsoum = ActiveCell.Row, je croyais qu'il allait sélectionner la cellule dans lequelle j'appuie sur le bouton, mais en fait se n'est pas le cas.