Prendre valeur d'un autre fichier

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

benloco

XLDnaute Nouveau
Bonjour,

Je souhaite creer une macro qui puisse aller chercher des valeurs dans un autre fichier (Fichier "Fich_obs) selon les conditions que je lui ai donné.
Ma macro est composé en deux etapes
1. ouvrir les fichiers dont j'ai besion
2. prendre les valeur et copier les copier dans m,on fichier final.

J'arrive bien a ouvrir les fichiers, avoir les nons des fichiers mais malheureusement je n'arrive pas a prendre les valeurs de ces fichiers
Mon code doit comporter une erreur, si vous pouvez m'aider, ce serait super sympa de votre part.

Voici le code :

Sub Selectiondesfichiers()
Dim fich_base As String
fich_base = ActiveWorkbook.Name

'selection des fichiers
Application.StatusBar = "Etape 2 - Selection des fichiers"
If MsgBox("Voulez-vous utiliser les fichiers actuels ?", vbYesNo) = vbYes Then
fich_Obs = Workbooks(fich_base).Sheets("Présentation").Cells(26, 7).Formula
fich_Ref = Workbooks(fich_base).Sheets("Présentation").Cells(28, 7).Formula
fich_Bud = Workbooks(fich_base).Sheets("Présentation").Cells(30, 7).Formula
fich_An = Workbooks(fich_base).Sheets("Présentation").Cells(32, 7).Formula

Else
'remise à zéro des noms des fichiers utilisés
Sheets("Présentation").Cells(26, 7).Formula = ""
Sheets("Présentation").Cells(28, 7).Formula = ""
Sheets("Présentation").Cells(30, 7).Formula = ""
Sheets("Présentation").Cells(32, 7).Formula = ""


MsgBox ("Selection du Fichier Période Observée")
fich_Obs = Application.GetOpenFilename()

MsgBox ("Selection du Fichier Période de Référence")
fich_Ref = Application.GetOpenFilename()

MsgBox ("Selection du Fichier Budget")
fich_Bud = Application.GetOpenFilename()

MsgBox ("Selection du Fichier Année antérieure")
fich_An = Application.GetOpenFilename()

'inscription des noms des fichiers
Workbooks(fich_base).Sheets("Présentation").Cells(26, 7).Formula = fich_Obs
Workbooks(fich_base).Sheets("Présentation").Cells(28, 7).Formula = fich_Ref
Workbooks(fich_base).Sheets("Présentation").Cells(30, 7).Formula = fich_Bud
Workbooks(fich_base).Sheets("Présentation").Cells(32, 7).Formula = fich_An
End If

'Ouverture des 4 fichier
Application.StatusBar = "Ouverture du fichier " & fich_Obs
Workbooks.Open fich_Obs, UpdateLinks:=False
mod_obs = ActiveWorkbook.Name

Application.StatusBar = "Ouverture du fichier " & fich_Ref
Workbooks.Open fich_Ref, UpdateLinks:=False
mod_Ref = ActiveWorkbook.Name

Application.StatusBar = "Ouverture du fichier " & fich_Bud
Workbooks.Open fich_Bud, UpdateLinks:=False
mod_Bud = ActiveWorkbook.Name

Application.StatusBar = "Ouverture du fichier " & fich_An
Workbooks.Open fich_An, UpdateLinks:=False
mod_An = ActiveWorkbook.Name

Call RBCVcanalpartv2


End Sub

Sub RBCVcanalpartv2()


Dim x As Integer
Dim y As Integer

Dim t As Integer
Dim a As Integer

Dim mod_obs As String
mod_obs = ActiveWorkbook.Name


[COLOR="red"](Je pense que mon erreur vient d'ici, mais pas sure)[/COLOR]

Worksheets("Présentation").Select

t = 2
While Not Trim(Sheets("Sheet1").Cells(t, 4)) = Trim(Sheets("Présentation").Cells(16, 7))
t = t + 1
Wend
a = Sheets("Sheet1").Cells(t, 5).Value


Sheets("Sheet1").Cells(4, 5).Value = a




x = a
y = 4




Do

'RBCV base livraison


'Canal Particulier

'Model 1

'Volumes Livraison
Sheets("Particulier").Cells(5, y).Value = Workbooks(mod_obs).Sheets("8.b RBCV Famille - Canal PART").Cells(x - 22, 11).Value

COLOR="red"](ou alors Je pense que mon erreur vient d'ici, (Woorbooks(mod_obs)[/COLOR]


Loop Until y = 4

End Sub






Merci beaucoup pour votre aide
 
Re : Prendre valeur d'un autre fichier

Bonjour,

Le problème c'est qu'on ne sait pas trop à quel classeur appartient quelle feuille (à par présentation)

Code:
Worksheets("Présentation").Select

t = 2
While Not Trim(Sheets("Sheet1").Cells(t, 4)) = Trim(Sheets("Présentation").Cells(16, 7))
t = t + 1
Wend
a = Sheets("Sheet1").Cells(t, 5).Value


Sheets("Sheet1").Cells(4, 5).Value = a

Mets tes feuilles en variables objet:

En haut de la macro RBCVcanalpartv2
Code:
Dim shPresentation as worksheet
Dim shDestination as Worksheet
'ThisWorkBook est le classeur qui contient la macro
Set shPresentation=ThisWorkBook.Sheets("Presentation")
Set shDestination=ActiveWorkBook.Sheets(nomdelafeuilleduclasseurdestination)
et partout où tu dois faire référence à l'un ou l'autre tu rajoutes ta variable objet exemple:
Code:
shDestination.Cells(i,j)=shPresentation.Cells(N,M)
Comme ça t'es sûr de ne pas te tromper.

A+
 
Re : Prendre valeur d'un autre fichier

Merci beaucoup pour ta reponse,

jen profrite pour en poser une seconde,

Dans mon code, je demande de faire une loop until 4, je souhaiterais recommencer cette Loop pour la colonne 16 puis ensuite 22, et enfin 28.

Quel est le code que je dois mettre


Merci beaucoup
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
5
Affichages
703
  • Question Question
XL 2021 VBA excel
Réponses
4
Affichages
370
Réponses
2
Affichages
556
Retour