Extraction de données de fichiers (vba excel)
aprentizorrrr
Messages postés
6
Date d'inscription
Statut
Membre
Dernière intervention
-
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
lermite222 Messages postés 8724 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour, j'ai fait un bilan (bilan pointage2008test et bilan pointage2009test, feuille Bilan dans les 2 fichiers) annuels des heures de chaque affaires, les heures sont reparties en 2 group, SOFT et BEE, et par chapitre ( type de prestations).
donc sa apres une un casse tete et de l'aide j'ai reussi
maintentant j'ai un fichier planning_bilan heurestest ou il y a toutes les affaires des années, et par affaire une colonne BEE et une colonne SOFT
je voudrais extraire les heures BEE et SOFT avec chapitre="A02" de mes bilans, et remplire les colonnes de mon planning.
sachant qu'une affaire peut aparaitre dans le bilan 2008 et 2009
voici le code que j'ai faire pour faires mes bilan:
voici mon nouveau code pour extraire et fremplire mais il manque la partie extraction, recuperer les données et la strucutre pour realiser sa correctement, j'ai mis en commentaire
voila si vous pouvez m'aider svp
donc sa apres une un casse tete et de l'aide j'ai reussi
maintentant j'ai un fichier planning_bilan heurestest ou il y a toutes les affaires des années, et par affaire une colonne BEE et une colonne SOFT
je voudrais extraire les heures BEE et SOFT avec chapitre="A02" de mes bilans, et remplire les colonnes de mon planning.
sachant qu'une affaire peut aparaitre dans le bilan 2008 et 2009
voici le code que j'ai faire pour faires mes bilan:
Option Explicit Sub Remplir_Bilan() Dim cellule As Range Dim n°affaire As String Dim chapitre As String Dim heures As Integer Dim technicien As String Dim cellule_bilan As Range Dim x As Integer ' decalage de colonne Dim BE1 As String Dim BE2 As String Dim BE3 As String Dim BE4 As String Dim SOFT1 As String Dim SOFT2 As String Dim SOFT3 As String Dim SOFT4 As String Dim SOFT5 As String Dim SOFT6 As String Dim SOFT7 As String Dim SOFT8 As String Dim SOFT9 As String Dim SOFT10 As String Dim client As String Dim BE As String Dim SOFT As String BE1 = "jojo" BE2 = "lolo" BE3 = "" BE4 = "" ' 10 SOFT prevuent de base, a remplire aux besoins SOFT1 = "toto" SOFT2 = "bobo" SOFT3 = "koko" SOFT4 = "gogo" SOFT5 = "momo" SOFT6 = "" SOFT7 = "" SOFT8 = "" SOFT9 = "" SOFT10 = "" For Each cellule In Worksheets("Heures Imputees").Range("D2:D2600") n°affaire = cellule.Value ' On est en colonne D chapitre = cellule.Offset(, 1).Value ' On est ici en colonne D+1 = E heures = cellule.Offset(, 2).Value ' On est ici en colonne D+2 = F technicien = cellule.Offset(, -2).Value ' on est ici en colonne B client = cellule.Offset(, -1).Value x = 5 If chapitre = "A02" Then Select Case technicien Case BE1, BE2: x = 3 Case SOFT1, SOFT2, SOFT3, SOFT4, SOFT5, SOFT6, SOFT7, SOFT8, SOFT9, SOFT10: x = 4 End Select End If For Each cellule_bilan In Worksheets("Bilan").Range("A3:A65536") If cellule_bilan.Value = n°affaire And cellule_bilan.Offset(, 2).Value = chapitre And cellule_bilan.Offset(, 1).Value = client Then cellule_bilan.Offset(, x).Value = cellule_bilan.Offset(, x).Value + heures ' // Penser à sortir Exit For End If If cellule_bilan.Value = "" Then ' // On arrive sur une ligne vide sans avoir trouvé ' // --> Création cellule_bilan.Value = n°affaire cellule_bilan.Offset(, 1).Value = client cellule_bilan.Offset(, 2).Value = chapitre cellule_bilan.Offset(, x).Value = cellule_bilan.Offset(, x).Value + heures ' // Penser à sortir Exit For End If Next Next Range("A3:F735").Sort Key1:=Range("A3"), Order1:=xlDescending, OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal End Sub
voici mon nouveau code pour extraire et fremplire mais il manque la partie extraction, recuperer les données et la strucutre pour realiser sa correctement, j'ai mis en commentaire
Option Explicit Sub LancerExtraction() Extraction "BILAN POINTAGE2008test.XLS" Extraction "BILAN POINTAGE2009test.XLS" End Sub Sub Extraction(NomDuClasseur As String) Dim n°affaire As String Dim NomClasseurORIGINE As String Dim NomClasseurOUVERT As String Dim heures As Integer Dim chapitre As String Dim BEE As Integer Dim SOFT As Integer Dim cellule_digestPE As Range Dim cellule_bilan As Range Dim n°affaire_Bilan As String Dim chapitre_Bilan As String Dim BEE_Bilan As Integer Dim SOFT_Bilan As Integer 'initialisation du classeur ouvert (Consolidation Pointage) NomClasseurORIGINE = ActiveWorkbook.Name 'Transfert dans NomClasseurOUVERT le nom du classeur de pointage (issue de Sub lancerExtraction) NomClasseurOUVERT = NomDuClasseur 'initialisation de la feuille du classeur (Consolidation Pointage) Worksheets("Heures Imputees").Activate ' voila il faut d'abord mettre en place la structure de l'extration, J'ai besoin d'aide svp ' la je suis dans les fichiers bilan pointage et feuille Bilan For Each cellule_bilan In Worksheets("Bilan").Range("A3:A65536") n°affaire_Bilan = cellule_bilan.Value chapitre_Bilan = cellule_bilan.Offset(, 2).Value BEE_Bilan = cellule_bilan.Offset(, 3).Value SOFT_Bilan = cellule_bilan.Offset(, 4).Value ' je suis dans le fichier Planing_blian_heurestest For Each cellule_digestPE In Worksheets("digest PE").Range("B3:B5000") ' je voudrais mettre la fin de la colonne B mais je connais pas encore la formule n°affaire = cellule_digestPE.Value ' On est en colonne B BEE = cellule_digestPE.Offset(, 7).Value 'colonne AR SOFT = cellule_digestPE.Offset(, 4).Value 'colonne AO Do While n°affaire = n°affaire_Bilan And chapitre_Bilan = "A02" BEE = BEE + BEE_Bilan SOFT = SOFT + SOFT_Bilan Loop End Sub
voila si vous pouvez m'aider svp
A voir également:
- Extraction de données de fichiers (vba excel)
- Liste déroulante excel - Guide
- Trier des données excel - Guide
- Word et excel gratuit - Guide
- Fiche de pointage excel - Télécharger - Tableur
- Supprimer les données de navigation - Guide
5 réponses
Oui, mais dans ce cas ne t'impatiente pas d'une réponse.. je ne suis pas toujours actif.
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
L'expérience instruit plus sûrement que le conseil. (André Gide)
Si tu te cognes à un pot et que ça sonne creux, c'est pas forcément le pot qui est vide. ;-)(Confucius)
Bonjour,
Difficile de répondre sans avoir ton classeur. (note que je comprend qu'il soit confidentiel)
Toutefois, plutôt que de mettre ce nombre invrésemblable de variables ne vaudrait-il pas mieux de creéer des tableaux ?
Ce serait déjà plus clair et plus simple.
A+
Difficile de répondre sans avoir ton classeur. (note que je comprend qu'il soit confidentiel)
Toutefois, plutôt que de mettre ce nombre invrésemblable de variables ne vaudrait-il pas mieux de creéer des tableaux ?
Ce serait déjà plus clair et plus simple.
A+
merci d'avoir preté attention a mon probleme, alors je peux t'envoyer le fichier ou l'upload ici mais je sais pas comment upload un fichier ( sauf si c'est pareil que les images)
voila donc si je peux t'envoyer mes fichiers, de mon cote il n'y a pas de probleme
voila donc si je peux t'envoyer mes fichiers, de mon cote il n'y a pas de probleme
Tu peu mettre ton classeur sur Cijoint.com
Si tu ne souhaite pas qu'il soit public tu met le lien sur un MP à mon intention mais si cela n'a pas d'importance tu peu le mettre sur un poste suivant.
Note que cette dernière solution est plus prolifique, tout le monde pouvant donner ses commentaires.
A+
Si tu ne souhaite pas qu'il soit public tu met le lien sur un MP à mon intention mais si cela n'a pas d'importance tu peu le mettre sur un poste suivant.
Note que cette dernière solution est plus prolifique, tout le monde pouvant donner ses commentaires.
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question