VBA rapatrier des valeurs dans classeur principal

Résolu
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -  
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Voilà ce que je voudrais faire:

À partir d'un classeur Excel:
1) Ouvrir plusieurs fichiers (sélectionné par une boite de dialogue)
2) Appliquer des formules dans ces fichiers ouvert
3) Rapatrier des valeurs des fichiers ouvert dans le classeur principal
Si possible sous la forme:
A1:nom_du_fichier_a B1:valeur_a1 C1:valeur_a2
A2:nom_du_fichier_b B2:valeur_b1 C2:valeur_b2

Pour les points 1 et 2, j'y suis arrivé, en imbriquant des morceaux de code trouvé aux hasard de mes recherches.
(je suis parti d'un lancement de macro par bouton...) je commence tout juste en VBa, donc potentiellement mon code ci-dessous n'est pas très optimisé, mais pour le moment pour moi: il fonctionne :)


Sub Bouton2_Cliquer()
Dim MainWbk As String
Dim lngCount As Long
MainWbk = ActiveWorkbook.Name

' Open the file dialog
With Application.FileDialog(msoFileDialogOpen)
.AllowMultiSelect = True
.Show
' Display paths of each file selected
Application.ScreenUpdating = False
For lngCount = 1 To .SelectedItems.Count
'MsgBox .SelectedItems(lngCount)
Workbooks.OpenText Filename:=.SelectedItems(lngCount), _
Origin:=xlMSDOS, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, _
Comma:=True, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1)), DecimalSeparator:=".", TrailingMinusNumbers:=True
Range("B1").Select
ActiveCell.Formula = "=(RC[-1]-(INDEX(C[-1],(ROW()+5),1)))"
Dim dl As Long 'déclare la variable dl (Dernière Ligne)
dl = Range("A65536").End(xlUp).Row 'définit la variable dl
Selection.AutoFill Destination:=Range("B1:B" & dl), Type:=xlFillDefault 'propage la formule jusqu'a dernière ligne
Range("C1").Select
ActiveCell.Formula = "=MIN(C[-1])"
Range("C2").Select
ActiveCell.Formula = "=MAX(C[-1])"
Next lngCount
End With
End Sub


je joins : mon fichier excel avec ma macro + 2 fichiers exemple que j'ouvre
classeur: https://www.cjoint.com/c/FCFidpyztYA
fichier_a: https://www.cjoint.com/c/FCFiesbG0bA
fichier_b:https://www.cjoint.com/c/FCFie0UpNWA

merci d'avance pour votre aide sur ce chemin pavé d'embuche VBA :)

3 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

A1:nom_du_fichier_a B1:valeur_a1 C1:valeur_a2
A2:nom_du_fichier_b B2:valeur_b1 C2:valeur_b2


valeur_a1 c'est cellule A1 de a ???????

Vous selectionnez combien de fichiers ?????

Parce qu'a trois je ne vois pas ce que vous recuperez
0
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   139
 
Bonjour,

le nombre de fichier selectionner peut varier

ce que je voudrais pour le 3)

c'est recupérer les cellules C1 et C2 de chaque fichier ouvert/traiter (min et max)

et le coller dans mon classeur avec
A1= nom du fichier
B1= valeur contenu en C1
C1= valeur contenu en C2

puis pour le second fichier idem
A2= nom du fichier
B2= valeur contenu en C1
C2= valeur contenu en C2
...

j'espère avoir été plus clair ?

merci pour l'aide.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

fichier modifie: https://www.cjoint.com/c/FCFplPzoNaf

ce que je voudrais pour le 3) ?????????????
0
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   139
 
merci, je regarde ça demain matin (pas d'Excel ici)

"ce que je voudrais pour le 3) ?????????????" --> je reformulais juste en dessous mon point n° 3.

merci en tous cas, de ce que je peux voir sous libre office, le résultat me parait ok.
0
snow_frog Messages postés 216 Date d'inscription   Statut Membre Dernière intervention   139
 
Merci f894009,

c'est tout à fait ce que je voulais!

je vais regarder un peu plus en détail le fonctionnement de "Tinfos"
0