Bonjour,
Je viens solliciter l'aide de pratiquants aguerris qui pourraient m'aider à me dépatouiller dans la création de code.
Pour le travail j'ai du créer un fichier excel afin de générer la création de feuilles de relevé d'heures de notre personnel sur les sites de travail.
Chaque feuille est soit affectée à un personne ( qui se rend sur plusieurs micro sites), soit affectée à un site ( gros site avec de nombreuses personnes qui travaillent conjointement).
Chaque feuille est truffée de mises en formes et de formules qui calculent des valeurs de temps standard, ce qui alourdi terriblement le poids du fichier lui même placé sur un serveur de fichiers.
j'ai donc scindé le fichier en plus 5 petits , un qui contient les grandes bases de calcul et les feuilles individuelles, quatre ( a, b, c, d) qui contiennent les feuilles "sites".
J'ai désactivé par le biais de macro les calculs automatiques car nos machines ne sont pas de première génération ( la mienne celeron 2.4 ghz 1 go) met actuellement 4-5 minutes pour procéder à un recalcul généralisé de tout l'ensemble des 5 fichiers.
Se pose le problème pour les utilisateurs quotidiens ( dont je ne fais pas partie) de trouver les feuilles dans ces 5 fichiers.
Au delà du Ctrl+f appliqué à chaque classeur, j'ai trouvé le principe du sommaire avec le lien hypertexte beaucoup plus pratique...
J'ai utilisé le code ( excellent) trouvé sur votre site, et commencé à le modifier pour mon usage.
J'ai réussi à le replacer, à modifier la page du sommaire, pour puisse s'afficher les données des quatre autres fichiers, mais ma réussite perso s'arrête là car il m'est difficile de formuler du code que je peine à décrypter et dont je ne maîtrise pas la syntaxe.
Je souhaiterai modifier la portion de code affectée au listing des feuilles du classeur en cours par le listing des feuilles pour les 4 autres classeurs ouverts et répertoriés.
fonctionne très bien pour le classeur de base, où se trouve le sommaire, affiche les en têtes de mes futurs sommaires!
Mais qu'elle doit être la syntaxe pour affecter les valeurs des autres classeurs???
J'ai bien trouvé des éléments sur des forums ( dont celui ci) mais aucune de mes réadaptations ne fonctionne.
je suppute que dans la formule je dois remplacer
- mon "i" par une autre lettre à chaque fois.
- mon sheets.count doit comporter le nom du fichier [ Workbooks("101125-TA-LGA-FEUILLES_RELEVE_HEURES_STANDARD_SITES-A-V1.xls").Sheets.Count]
-mais que la valeur "2" doit aussi se référer à la feuille 2 de ce classeur et non de celui qui est actif or comment l'écrire.
-que mes valeurs [A1] et [E2] doivent être modifiées également ( je suppute un [F1] et un [J2]), d’ailleurs au passage si quelqu'un pouvait m'explique le rôle de E2...
-et que d'autres paramètres sont peut être à modifier...
Petit point de remarque le nom du fichier "standard A" doit être bon puisse que je déclenche son ouverture lors de l'ouverture du fichier "BASE"
Nom et adresse du fichier relevé
je serai très reconnaissant à toute personne pouvant m'aiguiller et / ou m'expliquer comment faire car toutes mes tentatives se soldent invariablement par des rejets du débogueur
LGA
Je viens solliciter l'aide de pratiquants aguerris qui pourraient m'aider à me dépatouiller dans la création de code.
Pour le travail j'ai du créer un fichier excel afin de générer la création de feuilles de relevé d'heures de notre personnel sur les sites de travail.
Chaque feuille est soit affectée à un personne ( qui se rend sur plusieurs micro sites), soit affectée à un site ( gros site avec de nombreuses personnes qui travaillent conjointement).
Chaque feuille est truffée de mises en formes et de formules qui calculent des valeurs de temps standard, ce qui alourdi terriblement le poids du fichier lui même placé sur un serveur de fichiers.
j'ai donc scindé le fichier en plus 5 petits , un qui contient les grandes bases de calcul et les feuilles individuelles, quatre ( a, b, c, d) qui contiennent les feuilles "sites".
J'ai désactivé par le biais de macro les calculs automatiques car nos machines ne sont pas de première génération ( la mienne celeron 2.4 ghz 1 go) met actuellement 4-5 minutes pour procéder à un recalcul généralisé de tout l'ensemble des 5 fichiers.
Se pose le problème pour les utilisateurs quotidiens ( dont je ne fais pas partie) de trouver les feuilles dans ces 5 fichiers.
Au delà du Ctrl+f appliqué à chaque classeur, j'ai trouvé le principe du sommaire avec le lien hypertexte beaucoup plus pratique...
J'ai utilisé le code ( excellent) trouvé sur votre site, et commencé à le modifier pour mon usage.
Code:
Sub ListFeuil()
'ChrisV, mpfe
Application.ScreenUpdating = False
Set nSht = Sheets.Add(Before:=Sheets(1))
On Error GoTo GesErr
DebProc:
nSht.Name = "Sommaire"
[A1] = "Liste des onglets du classeur"
With Selection.Font
.Bold = True
.Size = 12
End With
For i = 2 To Sheets.Count
nSht.Cells(i, 1).Value = Sheets(i).Name
With Worksheets(nSht.Name)
ActiveSheet.Hyperlinks.Add Anchor:=.Cells(i, 2), _
Address:="", SubAddress:=Sheets(i).Name & "!A1", _
TextToDisplay:="Lien vers " & Sheets(i).Name
End With
Next i
With Rows("1:1")
.RowHeight = 40
.VerticalAlignment = xlCenter
End With
[E2].Activate
ActiveWindow.DisplayGridlines = False
Exit Sub
GesErr:
Application.DisplayAlerts = False
Sheets("Sommaire").Delete
Application.DisplayAlerts = True
GoTo DebProc
End Sub
J'ai réussi à le replacer, à modifier la page du sommaire, pour puisse s'afficher les données des quatre autres fichiers, mais ma réussite perso s'arrête là car il m'est difficile de formuler du code que je peine à décrypter et dont je ne maîtrise pas la syntaxe.
Code:
Sub ListFeuil()
'ChrisV, mpfe
Application.ScreenUpdating = False
Set nSht = Sheets.Add(Before:=Sheets(1))
On Error GoTo GesErr
DebProc:
nSht.Name = "Sommaire"
[A1] = "Liste des onglets du classeur BASE HEURES"
[F1] = "Liste des onglets du classeur FEUILLES A"
[K1] = "Liste des onglets du classeur FEUILLES B"
[P1] = "Liste des onglets du classeur FEUILLES C"
[U1] = "Liste des onglets du classeur FEUILLES D"
Range("A1:U1").Select
Selection.Font.Bold = True
With Selection.Font
.Size = 12
End With
For i = 2 To Sheets.Count
nSht.Cells(i, 1).Value = Sheets(i).Name
With Worksheets(nSht.Name)
ActiveSheet.Hyperlinks.Add Anchor:=.Cells(i, 2), _
Address:="", SubAddress:=Sheets(i).Name & "!A1", _
TextToDisplay:="Lien vers " & Sheets(i).Name
End With
Next i
With Rows("1:1")
.RowHeight = 40
.VerticalAlignment = xlCenter
End With
[E2].Activate
ActiveWindow.DisplayGridlines = False
Exit Sub
GesErr:
Application.DisplayAlerts = False
Sheets("Sommaire").Delete
Application.DisplayAlerts = True
GoTo DebProc
End Sub
Je souhaiterai modifier la portion de code affectée au listing des feuilles du classeur en cours par le listing des feuilles pour les 4 autres classeurs ouverts et répertoriés.
Code:
For i = 2 To Sheets.Count
nSht.Cells(i, 1).Value = Sheets(i).Name
With Worksheets(nSht.Name)
ActiveSheet.Hyperlinks.Add Anchor:=.Cells(i, 2), _
Address:="", SubAddress:=Sheets(i).Name & "!A1", _
TextToDisplay:="Lien vers " & Sheets(i).Name
End With
Next i
With Rows("1:1")
.RowHeight = 40
.VerticalAlignment = xlCenter
End With
[E2].Activate
ActiveWindow.DisplayGridlines = False
Exit Sub
fonctionne très bien pour le classeur de base, où se trouve le sommaire, affiche les en têtes de mes futurs sommaires!
Mais qu'elle doit être la syntaxe pour affecter les valeurs des autres classeurs???
J'ai bien trouvé des éléments sur des forums ( dont celui ci) mais aucune de mes réadaptations ne fonctionne.
je suppute que dans la formule je dois remplacer
- mon "i" par une autre lettre à chaque fois.
- mon sheets.count doit comporter le nom du fichier [ Workbooks("101125-TA-LGA-FEUILLES_RELEVE_HEURES_STANDARD_SITES-A-V1.xls").Sheets.Count]
-mais que la valeur "2" doit aussi se référer à la feuille 2 de ce classeur et non de celui qui est actif or comment l'écrire.
-que mes valeurs [A1] et [E2] doivent être modifiées également ( je suppute un [F1] et un [J2]), d’ailleurs au passage si quelqu'un pouvait m'explique le rôle de E2...
-et que d'autres paramètres sont peut être à modifier...
Petit point de remarque le nom du fichier "standard A" doit être bon puisse que je déclenche son ouverture lors de l'ouverture du fichier "BASE"
Nom et adresse du fichier relevé
Code:
ChDir "\\Serveur\serveur_personnel_et_salaires\Temps_Partiels\Tableaux_heures"
Workbooks.Open Filename:= _
"\\Serveur\serveur_personnel_et_salaires\Temps_Partiels\Tableaux_heures\101125-TA-LGA-FEUILLES_RELEVE_HEURES_STANDARD_SITES-A-V1.xls"
je serai très reconnaissant à toute personne pouvant m'aiguiller et / ou m'expliquer comment faire car toutes mes tentatives se soldent invariablement par des rejets du débogueur
LGA
Dernière édition: