Bonjour à tous,
j'ai un classeur excel avec plusieurs feuilles.
une des feuilles est nommée MDR et cette feuille contient la liste des documents d'un projet. Le client nous exige de remplir un fichier modèle (transmitttal) pour lui soumettre les documents (il importe ce fichier excel dans son logiciel de gestion documentaire). Vu le nombre d'erreurs que nous avons dans le remplissage de ce transmittal, j'ai envie d'automatiser la création de ce fichier transmittal en respectant le modèle transmis par le client.
le principe que j'utilise est de récupérer dans une feuille de calcul intermédiaire (Feuil2) les noms des fichiers PDF à envoyer qui se trouvent dans un répertoire puis de copier les données de la (Feuil2) vers un fichier Excel Transmittal fourni par le client.
Vous trouverez en pièces jointes les 2 fichiers.
Mon souci à l'exécution est que j'ai le message suivant "Erreur d'exécution 1004, cette opération requiert que les cellules fusionnées soient de taille identique".
Ci-dessous les codes
Sub demo()
repertoire = "D:\01 - Mes documents\03 - Professionnel\Generate TSI" ' adapter
i = 2
nf = Dir(repertoire & "\*.pdf") ' premier fichier
Do While nf <> ""
Cells(i, 1) = nf
nf = Dir ' suivant
i = i + 1
Loop
End Sub
Sub generate()
Dim n As Integer
Dim m As Integer
Dim c As String
n = Application.WorksheetFunction.CountA(Feuil1.Range(Feuil1.Cells(1, 2), Feuil1.Cells(1, 20)))
m = Application.CountA(Columns(1)) - 1
Cells(1, 7).Value = m
Dim reference As Range
Dim DernLigne As Long
Dim PremLigne As Long
PremLigne = 2
DernLigne = m
Sheets("Feuil2").Select 'sélection de la feuille 2dans le fichier 1
Range("B2:H4").Select 'sélection de la plage de donnée à copier
Range(Cells(PremLigne, 2), Cells(DernLigne, 27)).Select
Range(Cells(PremLigne, 2), Cells(DernLigne, 27)).SpecialCells(xlCellTypeFormulas, 7).Copy
c = CStr(Worksheets("Feuil2").Cells(1, 10).Value)
Workbooks.Open Filename:="D:\01 - Mes documents\03 - Professionnel\Generate TSI\transmittal.xls"
Sheets("Contractor Trans.").Select 'Sélection de la feuille 1
Range("B30").PasteSpecial Paste:=xlPasteValues
Range("B30").PasteSpecial Paste:=xlPasteColumnWidths
End Sub
j'ai un classeur excel avec plusieurs feuilles.
une des feuilles est nommée MDR et cette feuille contient la liste des documents d'un projet. Le client nous exige de remplir un fichier modèle (transmitttal) pour lui soumettre les documents (il importe ce fichier excel dans son logiciel de gestion documentaire). Vu le nombre d'erreurs que nous avons dans le remplissage de ce transmittal, j'ai envie d'automatiser la création de ce fichier transmittal en respectant le modèle transmis par le client.
le principe que j'utilise est de récupérer dans une feuille de calcul intermédiaire (Feuil2) les noms des fichiers PDF à envoyer qui se trouvent dans un répertoire puis de copier les données de la (Feuil2) vers un fichier Excel Transmittal fourni par le client.
Vous trouverez en pièces jointes les 2 fichiers.
Mon souci à l'exécution est que j'ai le message suivant "Erreur d'exécution 1004, cette opération requiert que les cellules fusionnées soient de taille identique".
Ci-dessous les codes
Sub demo()
repertoire = "D:\01 - Mes documents\03 - Professionnel\Generate TSI" ' adapter
i = 2
nf = Dir(repertoire & "\*.pdf") ' premier fichier
Do While nf <> ""
Cells(i, 1) = nf
nf = Dir ' suivant
i = i + 1
Loop
End Sub
Sub generate()
Dim n As Integer
Dim m As Integer
Dim c As String
n = Application.WorksheetFunction.CountA(Feuil1.Range(Feuil1.Cells(1, 2), Feuil1.Cells(1, 20)))
m = Application.CountA(Columns(1)) - 1
Cells(1, 7).Value = m
Dim reference As Range
Dim DernLigne As Long
Dim PremLigne As Long
PremLigne = 2
DernLigne = m
Sheets("Feuil2").Select 'sélection de la feuille 2dans le fichier 1
Range("B2:H4").Select 'sélection de la plage de donnée à copier
Range(Cells(PremLigne, 2), Cells(DernLigne, 27)).Select
Range(Cells(PremLigne, 2), Cells(DernLigne, 27)).SpecialCells(xlCellTypeFormulas, 7).Copy
c = CStr(Worksheets("Feuil2").Cells(1, 10).Value)
Workbooks.Open Filename:="D:\01 - Mes documents\03 - Professionnel\Generate TSI\transmittal.xls"
Sheets("Contractor Trans.").Select 'Sélection de la feuille 1
Range("B30").PasteSpecial Paste:=xlPasteValues
Range("B30").PasteSpecial Paste:=xlPasteColumnWidths
End Sub
Dernière édition: