Copier toute les feuilles d'un classeur

kevenpom

XLDnaute Junior
bonjours forum
boujours tout le monde, comment allez-vous

J'AI UN PROBLÈME auquels je ne trouve pas réponse.
Mise en situation j'ai un classeur avec un nom au hazard sur le réseau que je ouvre. J'ai un boutons dans ma barre a outils (lien hyper-texte sur anomalie.xls)
j'aimerais être en mesure de copier toute mes feuilles de mon fichier au hasard
vers mon anomalie.xls .
Mais je ne sais pas comme ecire en .vbs

copier toute les feuilles du fichier ouvert "JobException_kev_"* vers
de anomalie.xls
ou même si je fait un for de feuil1 a feuilx, je peut faire un .count

se que je ne sait pas faire se de mettre en vba
le fichier ouvert "JobException_kev_"* ."copie toute les feuilles"
 

fanfan38

XLDnaute Barbatruc
Re : Copier toute les feuilles d'un classeur

Bonjour,
tu ouvres en 1° anomalie.xls
Sur l'autre fichier tu mets cette macro
Sub copie()
For i = 1 To Sheets.Count
Sheets(i).Copy Before:=Workbooks("anomalie").Sheets(1)
Next
End Sub
Tu peux, quand tu appuies sur le bouton anomalie, lancer cette macro...
A+ François
 

kevenpom

XLDnaute Junior
Re : Copier toute les feuilles d'un classeur

Rebonjours et merci fanfan38
Je ne peut mettre de macro sur mes fichier réseau
ses pour sa que je doit mettre le code dans anomalie

Voici mon Thiswoorkbook de anomalie.xls
Code:
Private Sub Workbook_Open()
Application.DisplayAlerts = False
On Error Resume Next
Sheets("feuil1").Clear
Sheets("feuil1").Select
Sheets("feuil1").Cells(1, 1).Select
ActiveSheet.Paste
Application.CutCopyMode = False
Sheets("EXECUTE").Delete
Sheets("temp").Delete
Sheets("FU").Delete
Sheets("RAPPORT").Delete
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "EXECUTE"
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "RAPPORT"
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "FU"
Sheets.Add after:=Sheets(Sheets.Count)
ActiveSheet.Name = "temp"
Application.DisplayAlerts = True
Sheets("feuil1").Select
Sheets("feuil1").Cells(1, 1).Select
Module2.MACROKeven
End Sub

j'aimerait ton code sauf qu'il soit dans anomalie...
For i = 1 To "Job_exeception"*.Sheets.Count
"Job_exeception"* .Sheets(i).Copy Before:=Workbooks("anomalie").Sheets(1)
Next
ou quelque chose du genre mon problème ses qu'il y a d'autre fichier excel ouvert ses pour sa je voudrait lui spécifier qu'il copie les sheets de "Job_Exception*"(fichier ouvert) vers Workbooks("anomalie").Sheets(1)

Merci encore de m'aider
 
Dernière édition:

kevenpom

XLDnaute Junior
Re : Copier toute les feuilles d'un classeur

Rebonjours forum
rebonjours tout le monde


J'ai une petite question est t'il possible de spécifier un fichier excel ouvert d'un certain nom pour en récupérer des feuilles...

exemple
Code:
OpenWorkbooks("job_keven*").allSheets

merci encore de prendre le temp de maider
 

fanfan38

XLDnaute Barbatruc
Re : Copier toute les feuilles d'un classeur

Bonjour
Pris dans l'aide de VBA
Workbooks.Open filename:="LARGE.XLS"
Tu peux en effet faire:
For i = 1 To Workbooks("classeur2").Sheets.Count
Workbooks("classeur2").Sheets(i).Copy Before:=Workbooks("anomalie").Sheets(1)
Next

A+ François
 

kevenpom

XLDnaute Junior
Re : Copier toute les feuilles d'un classeur

Rebonjour fanfan merci encore pour ton aide j'ai presque réussi mais voici mon problème
Code:
Z = Workbooks("JobException_Ster_172616.xls").Sheets.Count
avec se code y me sort mon nombre de feuille mais vu que je ne connait pas le nom complet du fichier j'ai essayer

Code:
Z = Workbooks("JobException_Ster_*.xls").Sheets.Count

mais sa ne fonctionne pas ya t'il une manière que quelqu'un connaitrait car je suis tellement proche.....
merci en avance de m'aider dans mon projet
a plus:D
 

Cousinhub

XLDnaute Barbatruc
Re : Copier toute les feuilles d'un classeur

Bonsoir,
vite fait :
ce code te donne le nom du fichier Job...... et le nombre d'onglets de ce classeur :

Code:
For Each wb In Workbooks
If wb.Name Like "JobException_Ster_*" Then
    x = wb.Sheets.Count: GoTo suite
End If
Next wb
suite:
MsgBox wb.Name & vbLf & x & " Onglets"
 

kevenpom

XLDnaute Junior
Re : Copier toute les feuilles d'un classeur

bhbh merci tes un génie et merci encore fanfan

ne me reste que une chose a faire ses de réussi a faire marche se bout de code
Code:
 Chemin = ThisWorkbook.Path ' même dossier
 ' Chemin = "D:\keven\désuetude\bd.xls" 'a mettre
 Workbooks.Open Chemin & "\fu.xls"
        With ActiveWorkbook
        With .Worksheets("feuil1")
        Fu = .Range("A1:A" & .Range("A65536").End(xlUp).Row).Value
        End With
        .Close
        End With
            
    MsgBox (Fu())
LIG = ws.Range("B65536").End(xlUp).Row
LIG3 = 1
With ws2
For I = 1 To LIG
    If ws.Cells(I, 1) = "OF:" Then
                NoMrp = ws2.Cells(LIG3, 2).Value
                Set trouve = Fu.Find(NoMrp, LookIn:=xlValues).Select
                    If Not trouve Is Nothing Then
                        ws2.Rows(LIG3).Interior.ColorIndex = 2
                    Else
                        ws2.Rows(LIG3).Interior.ColorIndex = 6
                   End If
Next

question ya t'il un moyen de faire afficher tout les donné de ma variable fu
pck monfind ne fonctionne pas?
lien ici

merci encore pour votre aide...:D
 

kevenpom

XLDnaute Junior
Re : Copier toute les feuilles d'un classeur

Merci j'ai addatpter ton code
Code:
'---------------------------------------COPIAGE DES FEUILLE DÉTAILLER ET SIMPLIFIER VER RAPPORT ANOMALIE-----------------------

For Each wb In Workbooks
    If wb.Name Like "JobException_Ster_*" Then x = wb.Sheets.Count: GoTo suite
Next wb
suite:
nom2 = "det"
If Workbooks(wb.Name).Sheets(1).Range("B1") = "Article" Then nom2 = "sim"
I = 0
For I = 1 To x
    Workbooks(wb.Name).Sheets(I).Copy Before:=Workbooks("RAPPORT ANOMALIE OF.xls").Sheets(I)
    ActiveSheet.Name = nom2 & I
Next
Application.DisplayAlerts = False
Workbooks(wb.Name).Close
Application.DisplayAlerts = True
x = 0

For Each wb1 In Workbooks
    If wb1.Name Like "JobException_Ster_*" Then x = wb1.Sheets.Count: GoTo suite1
Next wb1
suite1:
nom2 = "det"
If Workbooks(wb1.Name).Sheets(1).Range("B1") = "Article" Then nom2 = "sim"

For T = 1 To x
    Workbooks(wb1.Name).Sheets(T).Copy Before:=Workbooks("RAPPORT ANOMALIE OF.xls").Sheets(T)
    ActiveSheet.Name = nom2 & T
Next
Application.DisplayAlerts = False
Workbooks(wb1.Name).Close
Application.DisplayAlerts = True

autrement dit sa marche a la perfection merci enocre d'avoir prit le temp de m'aider
 

Discussions similaires

Statistiques des forums

Discussions
312 215
Messages
2 086 326
Membres
103 180
dernier inscrit
Vcr