Bonjour,
J'ai créé un programme qui me donne le résultat que je souhaite, càd trouver une valeur (proche de la rechercheV et equiv en formules exceliennes) dans un 2e onglet en partant d'une valeur a et d'une valeur b. L'une de ces valeurs (a) est une chaine de 4 caractères format texte et la seconde (b) est une date, ce qui ne me permet pas de travailler sur une concaténation, surtout que je travail sur des intervalles et que la date que je chercherais serait toujours avant ou après celle dans le 2e onglet. La concaténation écartée je me déplace dans une colonne puis une fois la première valeur trouvée je me déplace d'un cran à droite et je continue de descendre jusqu'à trouver la bonne date. Tout çà en cellules actives... hummm
Mon problème est lié au temps de calcul extrêmement long. En effet je me déplace dans le 2n onglet de cellule en cellule active ce qui est bien moins instantané qu'une rechercheV.
L'autre soucis est plus d'ordre sanitaire, en effet, voir l'écran passer d'un onglet à l'autre et défiler sur toutes les cellules actives sur +16000 lignes finis par me donner la nausée (il faut dire que j'aime colorer mes feuilles excel). Est-il possible de travailler sans changer les Onglets et Cellules actives et ainsi rester sur le premier onglet de départ ?
Je vous remercie
Cordialement
Sheets("ONGLET 1").Select
Range("C2").Select
'Récupération des données qui vont servir à la recherche dans le 2nd onglet
Do While ActiveCell.Value <> ""
a = Left(ActiveCell, 4)
b = ActiveCell.Offset(0, -1)
Sheets("ONGLET 2").Select
Range("A2").Select
'Recherche de la valeur a dans la première colonne
Do While ActiveCell.Value <> a
ActiveCell.Offset(1, 0).Select
Loop
'Une fois la valeur a trouvée je cherche la valeur b qui lui correspond, une valeur a pouvant avoir plusieurs valeurs b
Do While ActiveCell.Offset(0, 1).Value > b
ActiveCell.Offset(1, 0).Select
Loop
'Une fois les valeurs a et b trouvées je récupère la valeur dans la 3e colonne et je la repose délicatement dans le premier onglet et je recommence parce que j'aime çà
c = ActiveCell.Offset(0, 2).Value
Sheets("ONGLET 1").Select
ActiveCell.Offset(0, 1).Value = c
ActiveCell.Offset(1, 0).Select
Loop
End Sub