Profil supprimé | Bonjour,
Je rencontre 2 soucis dans mon code :
Code :
- Sub Construire_fiches()
- FinTableauMapping = Sheets("Mapping" ).Range("A" & "65535" ).End(xlUp).Row
- For i = 2 To FinTableauMapping
- CodePole = Workbooks("FICHES_SYNTHETIQUES_DRH_par_pôle.xls" ).Sheets("Mapping" ).Range("a" & i).Value
- ' Déterminer les différents tableaux
- Sheets("3580" ).Select
- LigneDebut1 = WorksheetFunction.Match("1. Effectifs", Range("C:C" ), 0) + 2
- LigneFin1 = WorksheetFunction.Match("TOTAL POCPBU", Range("C:C" ), 0) - 1
- LigneDebut2 = WorksheetFunction.Match("2. Absences longues prévisionnelles (AT/LM/LD/MAT/MPRO)", Range("C:C" ), 0) + 2
- LigneFin2 = WorksheetFunction.Match("3. Entrées prévisionnelles", Range("C:C" ), 0) - 2
- LigneDebut3 = WorksheetFunction.Match("3. Entrées prévisionnelles", Range("C:C" ), 0) + 2
- LigneFin3 = WorksheetFunction.Match("4. Sorties prévisionnelles", Range("C:C" ), 0) - 2
- LigneDebut4 = WorksheetFunction.Match("4. Sorties prévisionnelles", Range("C:C" ), 0) + 2
- LigneFin4 = Range("C" & Rows.Count).End(xlUp).Row + 1
- ' Effacer les anciennes données
- Range("C" & LigneDebut2 & ":L" & LigneFin2).ClearContents
- Range("C" & LigneDebut3 & ":K" & LigneFin3).ClearContents
- Range("C" & LigneDebut4 & ":K" & LigneFin4).ClearContents
- ''' ABSENTEISME PREVISIONNEL
- ' Filtrer sur le pôle en question dans le fichier Abs prev
- Workbooks.Open ("I:\DRH\EFFECTIF\Fiches_synthétiques_par_pôle\Abs_ longues_prev_pour_fiche_synth.xls" )
- Selection.AutoFilter Field:=1, Criteria1:=CodePole 'field 1 = colonne A, pôle XXXX
- ' Copier cette sélection
- Range("c2" ).Select
- Range(Selection, Selection.End(xlToRight)).Select
- Range(Selection, Selection.End(xlDown)).Select
- Selection.Copy
- ' Coller cette sélection dans le bon tableau
- Windows("FICHES_SYNTHETIQUES_DRH_par_pôle.xls" ).Activate
- Range("C" & LigneDebut2).Activate
- Selection.PasteSpecial Paste:=xlValues
- ''' ENTREES PREVISIONNELLES
- ' Filtrer sur le pôle en question dans le fichier Abs prev
- Workbooks.Open ("I:\DRH\EFFECTIF\Fiches_synthétiques_par_pôle\Entr ées-prev_pour_fiche_synth.xls" )
- Selection.AutoFilter Field:=1, Criteria1:=CodePole 'field 1 = colonne A, pôle XXXX
- ' Copier cette sélection
- Range("c2" ).Select
- Range(Selection, Selection.End(xlToRight)).Select
- Range(Selection, Selection.End(xlDown)).Select
- Selection.Copy
- ' Coller cette sélection dans le bon tableau
- Windows("FICHES_SYNTHETIQUES_DRH_par_pôle.xls" ).Activate
- Range("C" & LigneDebut3).Activate
- Selection.PasteSpecial Paste:=xlValues
- ''' SORTIES PREVISIONNELLES
- ' Filtrer sur le pôle en question dans le fichier Abs prev
- Workbooks.Open ("I:\DRH\EFFECTIF\Fiches_synthétiques_par_pôle\Sort ies-prev_pour_fiche_synth.xls" )
- Selection.AutoFilter Field:=1, Criteria1:=CodePole 'field 1 = colonne A, pôle XXXX
- ' Copier cette sélection
- Range("c2" ).Select
- Range(Selection, Selection.End(xlToRight)).Select
- Range(Selection, Selection.End(xlDown)).Select
- Selection.Copy
- ' Coller cette sélection dans le bon tableau
- Windows("FICHES_SYNTHETIQUES_DRH_par_pôle.xls" ).Activate
- Range("C" & LigneDebut4).Activate
- Selection.PasteSpecial Paste:=xlValues
- Next
- ' Fermer les classeurs d'export
- Windows("Abs_longues_prev_pour_fiche_synth.xls" ).Activate
- ActiveWorkbook.Close False
- Windows("Entrées-prev_pour_fiche_synth.xls" ).Activate
- ActiveWorkbook.Close False
- Windows("Sorties-prev_pour_fiche_synth.xls" ).Activate
- ActiveWorkbook.Close False
- End Sub
|
Problème n°1
Lorsque je filtre par exemple le fichier Entrées_prévisionnelles et que sur le pôle en question il n'y a pas d'entrée prévisionnelle, le "collage spécial" plante car bien sûr la plage est trop grande
comment tester et dire qqch comme "si le filtre ne donne rien sauter l'étape collage"
(lignes 32-45-59)
Problème n°2
Au tout début du code (ligne 6)
sheets"3580".Select
comment variabiliser cela et dire de sélectionner l'onglet de la variable CodePole (pour la boucle)
Merci d'avance, Message édité par Profil supprimé le 13-08-2012 à 16:31:38
|