Bonjour Fabiendag, Mpi!
J'ai pris compte de vos deux remarques et j'ai adapté la macro: Une première fonction permet d'ouvrir une boite de dialogue:
Function RechercheFichier() As String
Dim fd As FileDialog
Dim NomFichier As String
Set fd = Application.FileDialog(msoFileDialogFilePicker)
With fd
.Filters.Add "Fichiers Excel", "*.xls"
.Title = "TITRE"
.InitialFileName = "FICHIER.xls"
End With
If fd.Show -1 Then NomFichier fd.SelectedItems(1)
RechercheFichier = NomFichier
Set fd = Nothing
End Function
Ensuite j'ouvre mon fichier:
Sub recherche()
Dim NomFichier As String
NomFichier = RechercheFichier()
If NomFichier = "" Then
MsgBox "Vous n'avez sélectionné aucun fichier"
Else
Workbooks.Open NomFichier
End If
Dim ValeurCherche As String
Dim Plage As Range
ValeurCherche = InputBox("Entrez une valeur")
If Trim(ValeurCherche) <> "" Then
With Sheets("Feuil1").Range("A:A") 'Recherche dans colonne A
Set Plage = .Find(What:=ValeurCherche, _
After:=.Cells(.Cells.Count), _
LookIn:=xlValues, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
SearchDirection:=xlNext, _
MatchCase:= False)
If Not Plage Is Nothing Then
Application.Goto Plage, True 'valeur trouvé
Else
MsgBox "Recheche nulle" 'value non trouvé
End If
End With
End If
End Sub
Je crois qu'on a peu près résolu le problème d'ouverture du fichier (même si j'envisage quelque améliorations)
Cela nous mène au 2ème point:
Par contre dans ta feuille tu as un nombre de ligne et de colonne fixe ou cela peut varier ?
Fabien
Réponse: OUI cela peut varier. ce qui va changer aussi c'est le nom de l'onglet (ou SHEET) sur lequel les recherches vont devoir être effectué (mais ce point n'est pas important, je changerai le nom de l'onglet à ouvrir au fur à mesure).
Ce qui m'importe c'est comment définir la ligne à balayer pour faire mon test. Je peux très bien modifier cette partie :With Sheets("Feuil1").Range("A:A") '
.
Mais ce que j'envisage de faire est un peu plus complexe COMME je l'ai spécifié ici :Maintenant Je souhaites que la macro ouvre un classeur précis et fasse une recherche sur un onglet bien précis et "renvoie" ou "recherche" la valeur maximum d'une ligne (dans l'optique de faire un calcul)
==> le problème de l'ouverture du classeur étant résolu je souhaite :
1°) Faire une différence entre une valeur dans une cellule du 1er classeur et une autre dans une autre cellule du second classeur.Celle du 2nd classeur étant mise à jour quotidiennement, (la valeur à chercher dans le 2nd Classeur doit donc être la valeur max de la plage "row" concernée).
2°) Mettre une mise en forme conditionnelle lié à la valeur de cette d'une différence.
Je crois que je dois fermer ce post et en ouvrir un autre n'est ce pas ?