Extraction de données de fichiers (vba excel)
aprentizorrrr
Messages postés
6
Statut
Membre
-
lermite222 Messages postés 9042 Statut Contributeur -
lermite222 Messages postés 9042 Statut Contributeur -
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
- Explorateur de fichiers - Guide
- 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