VBA recherchev avec sierreur

Macfa

XLDnaute Nouveau
Bonjour à vous,

Je suis face à une difficuté, la suivante:

Le classeur excel import des prix et les dates correspondantes (différentes selon jours fériés) de différents indices.

Il faudrait que tous les prix de tous les indices soient misent sur une même base de dates.

Avec les formules excel j'effectue une suite de =sierreur(recherchev; ...), veuillez voir formule complète dans le classeur cellules vertes.

J'aurai souhaité appliquer la même formule sous VBA, afin que je puisse l'appliquer directement pour les différents indices et sur différentes feuilles excel; voir feuilles WorldIDX et STOXXSS qui doivent être misent sur la même base de date sur la feuille AllDated.

Merci d'avance pour votre aide.

Macfa
 

Pièces jointes

  • Database1.xlsx
    30.7 KB · Affichages: 108

Gorfael

XLDnaute Barbatruc
Re : VBA recherchev avec sierreur

Salut Macfa et le forum
Ton fichier étant en xslx, ceux n'ayant pas une version de 2007 ou supérieure ne peuvent te répondre, alors que le VBA n'a pas trop évolué.
De plus, comme toutes tes infos passent par la lecture du fichier...
A+
 

Macfa

XLDnaute Nouveau
Re : VBA recherchev avec sierreur

Salut Macfa et le forum
Ton fichier étant en xslx, ceux n'ayant pas une version de 2007 ou supérieure ne peuvent te répondre, alors que le VBA n'a pas trop évolué.
De plus, comme toutes tes infos passent par la lecture du fichier...
A+

Salut Gorfael, autant pour moi!
Voilà la fichier en format 2003.
Merci pour ta remarque.
A plus
 

Pièces jointes

  • Database1.xls
    42 KB · Affichages: 112
  • Database1.xls
    42 KB · Affichages: 115
  • Database1.xls
    42 KB · Affichages: 110

Gorfael

XLDnaute Barbatruc
Re : VBA recherchev avec sierreur

Salut Macfa et le forum
une macro dans ce style, peut-être :
Code:
Sub test()
'Déclaration ==============================
Dim Col_R As Integer, Col As Integer
Dim F_A As Worksheet, F_W As Worksheet, F_S As Worksheet
Dim Cel As Range, Cel_R As Range
'MEI ======================================
Set F_A = Sheets("AllDated")
Set F_W = Sheets("WorldIDX")
Set F_S = Sheets("STOXXSS")
'mise en forme de la feuille STOXXSS -------
For Each Cel In F_S.Range(F_S.[A3], F_S.Cells(Rows.Count, "A").End(xlUp))
    Cel.NumberFormatLocal = "jj/mm/aaaa"
    Cel = CDate(Replace(Cel, ".", "/"))
Next Cel
'Copie des données ========================
For Each Cel_R In F_A.Range(F_A.[A3], F_A.Cells(Rows.Count, "A").End(xlUp))
    If Cel_R <> "" Then
        For Col_R = 2 To 7  'pour tous les titres (colonnes 2 à 7)
            Col = 0 'remise à zéro
            Col = F_W.Rows(2).Find(F_A.Cells(2, Col_R)).Column 'on recherche la colonne de même titre
            If Col > 1 Then
                Set Cel = F_W.Columns(Col - 1).Find(Cel_R)
                If Not (Cel Is Nothing) Then F_A.Cells(Cel_R.Row, Col_R) = Cel.Offset(0, 1)
            End If
        Next Col_R
        '-------------------------------------------------------------
        Set Cel = F_S.Columns(1).Find(Cel_R)
        If Not (Cel Is Nothing) Then
            For Col_R = 8 To 11  'pour tous les titres de "STOXXSS"
                F_A.Cells(Cel_R.Row, Col_R) = F_S.Cells(Cel.Row, Col_R - 6)
            Next Col_R
        End If
    End If
Next Cel_R
'Fin boucle date --------------------------
End Sub
A+
 

Discussions similaires

Réponses
6
Affichages
450

Statistiques des forums

Discussions
312 838
Messages
2 092 668
Membres
105 482
dernier inscrit
Eric.FKF