Assemblage de classeur excel
Résolu
jujuetd63
-
jujuetd63 -
jujuetd63 -
A voir également:
- Assemblage de classeur excel
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Si ou excel - Guide
- Fiche de pointage excel - Télécharger - Tableur
13 réponses
Bonjour,
Tu peux t'inspirer de cela:
http://boisgontierjacques.free.fr/pages_site/GestionOnglets.htm#OngletsClasseursRepertoire
Il faut bien entendu qu'ils soient dans le même répertoire et dans l'ordre que toi est le seul a savoir!
Tu peux t'inspirer de cela:
http://boisgontierjacques.free.fr/pages_site/GestionOnglets.htm#OngletsClasseursRepertoire
Il faut bien entendu qu'ils soient dans le même répertoire et dans l'ordre que toi est le seul a savoir!
Si je comprend bien ce qui est écrit dans le document du lien il faut que le document actif soit celui qui reçoit le contenu des autres documents.
Dans mon cas le classeur EXCEL actif est l'interface d'assemblage.
Le document assemblé est à créer de toute pièce à chaque utilisation de l'interface.
Je ne peux donc pas utiliser le document actif comme dans le code que vous m' avez envoyer.
Comment est il possible de modifier ce code pour le faire fonctionner sans le document actif?
Si il faut un document support je peux en créer un ( je ne sais pas encore comment).
J'utilise une méthode similaire pour l'assemblage des documents WORD.
Dans mon cas le classeur EXCEL actif est l'interface d'assemblage.
Le document assemblé est à créer de toute pièce à chaque utilisation de l'interface.
Je ne peux donc pas utiliser le document actif comme dans le code que vous m' avez envoyer.
Comment est il possible de modifier ce code pour le faire fonctionner sans le document actif?
Si il faut un document support je peux en créer un ( je ne sais pas encore comment).
J'utilise une méthode similaire pour l'assemblage des documents WORD.
bonjour, il est possible de modifier ce code, en remplaçant la ligne
par exemple:
Set classeurMaitre = ActiveWorkbookpar la création d'un document Excel.
par exemple:
dim classeurMaitre as workbook Set classeurMaitre= Workbooks.Add ' le reste du boulot classeurMaitre.SaveAs Filename:= thisworkbook.path + "\Assemble.xlsx"
désolé mais je ne vois pas où mettre les quatre ligne de code que tu m'a donné dans le code suivant:
Code donné par cs_le piver
et que veut dire ".ADD"
Sub consolide() ' Ce classeur et les classeurs à consolider sont dans le même répertoire répertoire = ThisWorkbook.Path Set classeurMaitre = ActiveWorkbook sup compteur = 1 nf = Dir(répertoire & "\*.xls") ' premier fichier Do While nf <> "" If nf <> classeurMaitre.Name Then Workbooks.Open Filename:=nf For k = 1 To Sheets.Count Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count) classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "Mapage" & compteur compteur = compteur + 1 Next k Workbooks(nf).Close False End If nf = Dir Loop End Sub Sub sup() Application.DisplayAlerts = False If Sheets.Count > 1 Then Sheets("Accueil").Move before:=Sheets(1) Sheets(2).Select For i = 2 To Sheets.Count ActiveSheet.Delete Next i End If End Sub
Code donné par cs_le piver
et que veut dire ".ADD"
il faudrait quand même avoir les bases!
https://www.excel-plus.fr/vba/demvba/gerer-les-classeurs-en-vba/
Le code que t'a donné yg_be est facile à mettre en place. Cela saute aux yeux.
il faudra aussi modifier cette ligne car tu n'auras que les classeurs 2003!
@+ Le Pivert
https://www.excel-plus.fr/vba/demvba/gerer-les-classeurs-en-vba/
Le code que t'a donné yg_be est facile à mettre en place. Cela saute aux yeux.
il faudra aussi modifier cette ligne car tu n'auras que les classeurs 2003!
nf = Dir(répertoire & "\*.xls") ' premier fichier
@+ Le Pivert
je suis désolé si mon niveau est bas mais on me demande de faire se travail car personne n'a travailler sur VBA et que j'ai vu VBA lors d'une formation en automatisme il y a 4 ans maintenant pendant 3 jours. Je n'ai manipulé que des informations provenant de différentes page d' un même classeur.
Aujourd'hui et avec l'aide de différents forums comme celui ci, j'ai créé une interface qui assemble des documents WORD et le met en PDF.
Je ne souhaite pas vous faire perdre votre temps, je vous remercie pour votre aide et je vais essayer ce que vous m'avez fourni.
Aujourd'hui et avec l'aide de différents forums comme celui ci, j'ai créé une interface qui assemble des documents WORD et le met en PDF.
Je ne souhaite pas vous faire perdre votre temps, je vous remercie pour votre aide et je vais essayer ce que vous m'avez fourni.
Ce n'est pas une question de temps mais de compréhension::
Quand je lis:
désolé mais je ne vois pas où mettre les quatre ligne de code que tu m'a donné dans le code suivant:
https://forums.commentcamarche.net/forum/affich-36676544-assemblage-de-classeur-excel#3
regarde ce post attentivement tout est dit!
@+ Le Pivert
Quand je lis:
désolé mais je ne vois pas où mettre les quatre ligne de code que tu m'a donné dans le code suivant:
https://forums.commentcamarche.net/forum/affich-36676544-assemblage-de-classeur-excel#3
regarde ce post attentivement tout est dit!
@+ Le Pivert
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
c'est la ligne:
classeurMaitre.SaveAs Filename:= thisworkbook.path + "\Assemble.xlsx"
qui me pose problème.
je ne sais pas où la mettre.
je comprend qu'elle enregistre le document dans le répertoire où se trouve le classeur actif mais est il le document final ou le document support pour l'assemblage.
classeurMaitre.SaveAs Filename:= thisworkbook.path + "\Assemble.xlsx"
qui me pose problème.
je ne sais pas où la mettre.
je comprend qu'elle enregistre le document dans le répertoire où se trouve le classeur actif mais est il le document final ou le document support pour l'assemblage.
bonjour,
Après plusieurs tests j'ai une erreur au niveau de la ligne :
Workbooks.Open Filename:=nf
dans le code suivant:
Je rassemble grâce au "call" les documents EXCEL dans un dossier "assemblagemodbus"
puis je dois les assembler.
Je reçois l'erreur 1004: "nous ne trouvons pas 00_entete.xlsx".
je pensais qu'à la ligne "r?pertoire = "D:\COMPTE.R\test macro\assemblagemodbus"
j'indiquais le dossier où le document d'assemblage et les documents à assembler se trouvaient.
Comme puis je sélectionner le dossier où se trouve mes document à assembler?
Cordialement
Après plusieurs tests j'ai une erreur au niveau de la ligne :
Workbooks.Open Filename:=nf
dans le code suivant:
Sub assembmodbus() Call entete Call ensmodbus1 Call ensmodbus2 Call ensmodbus3 Call ensmodbus4 Call ensmodbus5 Call ensmodbus6 Call ensmodbus7 Call ensmodbus8 Call ensmodbus9 Call ensmodbus10 Call ensmodbus11 Call ensmodbus12 Call ensmodbus13 Call ensmodbus14 Call ensmodbus15 Call ensmodbus16 Call ensmodbus17 Call ensmodbus18 Call ensmodbus19 Call ensmodbus20 ' Ce classeur et les classeurs ? consolider sont dans le m?me r?pertoire r?pertoire = "D:\COMPTE.R\test macro\assemblagemodbus" Dim classeurMaitre As Workbook Set classeurMaitre = Workbooks.Add sup compteur = 1 nf = Dir(r?pertoire & "\*.xlsx") ' premier fichier Do While nf <> "" If nf <> classeurMaitre.Name Then Workbooks.Open Filename:=nf For k = 1 To Sheets.Count Sheets(k).Copy After:=classeurMaitre.Sheets(classeurMaitre.Sheets.Count) classeurMaitre.Sheets(classeurMaitre.Sheets.Count).Name = "ModBus" & compteur compteur = compteur + 1 Next k Workbooks(nf).Close False End If nf = Dir Loop classeurMaitre.SaveAs Filename:="D:\COMPTE.R\test macro\final" & "\DocModbusFinal.xlsx" Call savePDFmodbus End Sub Sub sup() Application.DisplayAlerts = False If Sheets.Count > 1 Then Sheets("Accueil").Move Before:=Sheets(1) Sheets(2).Select For i = 2 To Sheets.Count ActiveSheet.Delete Next i End If End Sub
Je rassemble grâce au "call" les documents EXCEL dans un dossier "assemblagemodbus"
puis je dois les assembler.
Je reçois l'erreur 1004: "nous ne trouvons pas 00_entete.xlsx".
je pensais qu'à la ligne "r?pertoire = "D:\COMPTE.R\test macro\assemblagemodbus"
j'indiquais le dossier où le document d'assemblage et les documents à assembler se trouvaient.
Comme puis je sélectionner le dossier où se trouve mes document à assembler?
Cordialement
A rectifier:
pour voir si c'est le bon fichier mettre ceci:
Il serait préférable de faire:
@+ Le Pivert
r?pertoire = "D:\COMPTE.R\test macro\assemblagemodbus\"' il manquait \
pour voir si c'est le bon fichier mettre ceci:
If nf <> classeurMaitre.Name Then MsgBox nf Workbooks.Open Filename:=nf
Il serait préférable de faire:
Sub assembmodbus() Call entete Call ensmodbus1 Call ensmodbus2 Call ensmodbus3 Call ensmodbus4 Call ensmodbus5 Call ensmodbus6 Call ensmodbus7 Call ensmodbus8 Call ensmodbus9 Call ensmodbus10 Call ensmodbus11 Call ensmodbus12 Call ensmodbus13 Call ensmodbus14 Call ensmodbus15 Call ensmodbus16 Call ensmodbus17 Call ensmodbus18 Call ensmodbus19 Call ensmodbus20 End Sub Sub savepdf() ' Ce classeur et les classeurs ? consolider sont dans le m?me r?pertoire r?pertoire = "D:\COMPTE.R\test macro\assemblagemodbus" Dim classeurMaitre As Workbook Set classeurMaitre = Workbooks.Add 'lasuite
@+ Le Pivert
merci cela fonctionne.
Autre question, j' ai un code qui me permet de convertir un document WORD en PDF.
j'ai voulu l'adapter pour convertir le document EXCEL final créé avec le code du poste au dessus mais cela ne fonctionne pas.
voici le code pour WORD:
Et voici le code modifier pour EXCEL
l'erreur que j'ai, est au niveau de la déclaration de la variable "Dim appexcel As Workbook.Application"
Autre question, j' ai un code qui me permet de convertir un document WORD en PDF.
j'ai voulu l'adapter pour convertir le document EXCEL final créé avec le code du poste au dessus mais cela ne fonctionne pas.
voici le code pour WORD:
Sub savePDF() Dim docWord As Word.Document Dim appWord As Word.Application Dim fic_doc As String Dim cheminpdf As String Set appWord = New Word.Application appWord.Visible = True fic_doc = Range("h4").Value 'Ouverture du document principal Word Set docWord = appWord.Documents.Open(fic_doc) cheminpdf = Replace(fic_doc, "docx", "pdf") 'enregistre en pdf dans le dossier en cours docWord.ExportAsFixedFormat outputFileName:=cheminpdf, _ exportFormat:=wdExportFormatPDF 'Fermeture du document Word docWord.Close False appWord.Quit End Sub
Et voici le code modifier pour EXCEL
Sub savePDFmodbus() Dim docexcel As Workbook Dim appexcel As Workbook.Application Dim chemin As String Dim cheminpdf As String Set appexcel = New Workbooks.Application appexcel.Visible = True chemin = Range("h5").Value 'Ouverture du document principal excel Set docexcel = Workbooks.Documents.Open(chemin) cheminpdf = Replace(chemin, "xlsx", "pdf") 'enregistre en pdf dans le dossier en cours docexcel.ExportAsFixedFormat outputFileName:=cheminpdf, _ exportFormat:=wdExportFormatPDF 'Fermeture du document Word docexcel.Close False appexcel.Quit End Sub
l'erreur que j'ai, est au niveau de la déclaration de la variable "Dim appexcel As Workbook.Application"
non pour une raison que j'ignore je n'arrive pas à enregistrer de macro quand je créer un pdf en manuel.
j' ai réussi pour d'autres fonctionnalités mais pour celle ci cela ne fonctionne pas la macro est vide.
de plus le classeur à convertir est fermé et enregistré dans un dossier diffèrent de l'interface EXCEL qui est ouverte.
j' ai réussi pour d'autres fonctionnalités mais pour celle ci cela ne fonctionne pas la macro est vide.
de plus le classeur à convertir est fermé et enregistré dans un dossier diffèrent de l'interface EXCEL qui est ouverte.
Comme ceci:
C'est une macro à mettre dans le classeur assemblé!!!
@+ Le Pivert
Sub CreerPDF() Dim sRep As String Dim sFilename As String Sheets.Select 'sélection de toutes les feuilles sRep = ThisWorkbook.Path & "\" sFilename = ThisWorkbook.Name sFilename = Left(sFilename, InStr(1, sFilename, ".")) & "pdf" ActiveSheet.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=sRep & sFilename, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True MsgBox "Enregistrer en PDF dans le même dossier que ce classeur", vbInformation, "Enregistrement en PDF" End Sub
C'est une macro à mettre dans le classeur assemblé!!!
@+ Le Pivert
ou peut-être:
classeurMaitre.SaveAs Filename:="D:\COMPTE.R\test macro\final" & "\DocModbusFinal.xlsx" sFilename = "D:\COMPTE.R\test macro\final" & "\DocModbusFinal.pdf" classeurMaitre.ExportAsFixedFormat Type:=xlTypePDF, _ Filename:=sRep & sFilename, _ Quality:=xlQualityStandard, _ IncludeDocProperties:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True
bonjour
je teste depuis ce matin le code ci dessus mais j'ai une erreur de compilation.
"attendu: identificateur"
sur les lignes suivantes:
J'ai vérifié la syntaxe, elle semble ok.
Je ne comprend pas le problème même avec l'aide.
je teste depuis ce matin le code ci dessus mais j'ai une erreur de compilation.
"attendu: identificateur"
sur les lignes suivantes:
Type:=xlTypePDF, _ Filename:=sRep & sFilename, _ Quality:=xlQualityStandard, _ IncludeDocProperies:=True, _ IgnorePrintAreas:=False, _ OpenAfterPublish:=True
J'ai vérifié la syntaxe, elle semble ok.
Je ne comprend pas le problème même avec l'aide.
désolé
je viens de trouver mon erreur.
J'ai une erreur de compilation sur la ligne:
"IncludeDocProperies:=True, _"
Argument nommé introuvable
Faut il une référence spéciale?
j'ai essayé sans cette ligne le document semble se créer mais je ne peu pas l'ouvrir.
je viens de trouver mon erreur.
J'ai une erreur de compilation sur la ligne:
"IncludeDocProperies:=True, _"
Argument nommé introuvable
Faut il une référence spéciale?
j'ai essayé sans cette ligne le document semble se créer mais je ne peu pas l'ouvrir.