IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Recherche croisée et décalée


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut Recherche croisée et décalée
    Bonjour à tous,

    Comme beaucoup, je débute en VBA (et en Excel d'ailleurs), et c'est la raison de ma visite.
    J'ai lu plein de sujets avant d'appeler au secours, mais mon niveau n'est sans doute pas assez bon pour adapter à mon cas ce que je lis.

    Voilà: j'ai une feuille excel avec des noms d'éléments (codes de type ABCDE, FYHKH, DDEZTY, etc...) en ligne, et jusqu'à 63 colonnes de date: les 3 derniers mois, mais pas tous les jours.
    Les dates n'apparaissent pas toutes en face de chaque code.

    Ca ressemble à ça :

    Code1 -- 29/01/2008 ----- 30/01/2008 ..... 14/02/2008
    ----------nbr1.1 ----------- nbr1.2 ............. nbr1.15
    Code2 -- 29/01/2008 -------- 02/02/2008 .... 14/02/2008 --------15/02/2008
    ---- -------- nbr2.1-------------- nbr2.2 ........... nbr2.12 --------- nbr2.13

    Je voudrais, dans une autre feuille (ou dans la même, mais c'est plus compliqué) réorganiser les colonnes pour avoir toutes les dates en haut (une ligne "d'intitulés de dates"), et les valeurs correspondantes au croisement de la date et du code.
    Si pas de valeur ce jour-là, mettre 0 ou #NA (ça je sais faire avec un "if empty... ou replace").

    Si vous avez une idée, je suis preneuse, je deviens folle (bon c'est pas vrai, je l'étais déjà, mais ça s'aggrave...).

    Merci par avance !

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Février 2007
    Messages
    491
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 491
    Par défaut
    bonjour,

    peux tu joindre ton classeur pour voir la structure des données
    (apparement : code(string) , nbre et dates)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut comment ?
    La pièce jointe est trop lourde: dois-je la zipper ?

    P.S: question subsidiaire : comment faire pour que la macro arrête de coder tout ce que je fais ? Ca commence à m'énerver tous ces "ActiveWindow.SmallScroll" à effacer dès que je me ballade sur mon fichier....

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut en compressant, pardi !
    Ah voilà, j'ai zippé.
    Mais j'ai enlevé des données. En fait, j'en ai plus de 10000 (lignes).
    Fichiers attachés Fichiers attachés

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    50
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2008
    Messages : 50
    Par défaut piste?
    En fait je me dis que je devrais faire une recherche croisée qui me renvoie la référence de la cellule qui contient la date. Puis une boucle "si les dates sont identiques, alors recopier dans la feuille 2 la valeur sous la date de la feuille 1".

    C'est sans doute pas très clair, mais je n'en peux plus (Bernard)....

  6. #6
    Expert confirmé
    Avatar de fring
    Homme Profil pro
    Engineering
    Inscrit en
    Février 2008
    Messages
    3 900
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : Belgique

    Informations professionnelles :
    Activité : Engineering

    Informations forums :
    Inscription : Février 2008
    Messages : 3 900
    Par défaut
    Bonjour,

    Une solution ci-dessous à peaufiner
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    Sub Recap_vols()
    Dim Dat1 As Date, Dat2 As Date
    Dim x As Byte, i As Integer, j As Integer, r As Integer
    Dim Sh1 As Worksheet, Sh2 As Worksheet
     
    Set Sh1 = Sheets("Vol 30d 3 mois")
    Sheets.Add after:=Sheets(Sheets.Count)
    ActiveSheet.Name = "Test " & Sheets.Count
    Set Sh2 = ActiveSheet
     
    With Sh2.Cells(1, 1)
    .Value = "Dates"
    .ColumnWidth = 25
    .HorizontalAlignment = xlRight
    .Font.Bold = True
    End With
     
    Sh2.Cells(2, 1) = "Vols"
    Sh2.Cells(2, 1).Font.Bold = True
     
    Dat1 = Sh1.Cells(2, 2)
    Dat2 = Sh1.Cells(2, 255).End(xlToLeft)
     
    For x = 0 To (Dat2 - Dat1)
        Sh2.Cells(1, x + 2) = Dat1 + x
    Next x
     
    r = 3
     
    For i = 1 To Sh1.Cells(65535, 1).End(xlUp).Row
        If Sh1.Cells(i, 1) = "VOLATILITY_30D" Then
            Sh2.Cells(r, 1) = Sh1.Cells(i - 1, 1)
            For j = 2 To Sh1.Cells(i, 255).End(xlToLeft).Column
                Set C = Sh2.Range("A1:IV1").Find(Sh1.Cells(i - 1, j).Value)
                If Not C Is Nothing Then
                    Sh2.Cells(r, C.Column) = Sh1.Cells(i, j)
                End If
            Next j
            r = r + 1
        End If
    Next i
     
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2010] Recherche croisée complexe dans tableau excel
    Par jean bapt' dans le forum Excel
    Réponses: 5
    Dernier message: 02/12/2014, 14h02
  2. Recherche croisée dans tableaux
    Par RandoTr dans le forum Langage
    Réponses: 1
    Dernier message: 08/02/2012, 16h33
  3. [XL-2003] Recherche croisée de donnée
    Par PC1967 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 18/11/2010, 14h28
  4. Tables croisées et recherche multicritère
    Par bronon dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/11/2007, 10h30
  5. Recherche croisées entre différents tableaux
    Par solorac dans le forum Excel
    Réponses: 2
    Dernier message: 12/06/2007, 10h49

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo