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 :

RECHERCHEV combinée à la fonction si et décaler [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 7
    Points
    7
    Par défaut RECHERCHEV combinée à la fonction si et décaler
    Bonsoir à tous,

    et par avance merci pour votre aide. Débutante en vba j'ai lu les tutoriels et différentes discussions mais je ne comprends pas suffisamment la logique de vba...
    J'espère que je serai claire dans mes explications

    J'ai un fichier excel qui comporte 3 feuilles : "BD","MAJ mois" et "Requête"

    Dans ma feuille "Requête", si la valeur indiquée en colonne L est supérieure à 1, alors je la copie puis je recherche le matricule indiqué en colonne A dans ma feuille"BD", puis je me décale à la colonne du mois concerné et je colle en valeur.
    Le numéro de colonne du mois étudié a vocation à être changé tous les mois. Du coup, pour éviter de modifier la macro, le n° de la colonne du mois concerné par cette formule se trouve dans la feuille "MAJ mois" en C1.

    Auriez-vous des pistes de formule à me proposer?

    Merci par avance pour le temps accordé!

    Anne

  2. #2
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 898
    Points : 8 529
    Points
    8 529
    Par défaut
    Salut
    Voila un début de code

    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
    Sub LaCellule()
    Dim SheetReq As Worksheet, SheetBD As Worksheet, SheetMaJ As Worksheet
    Dim NumMois As Byte
    Dim ValeurReq As Long 'Mettre Double si la valeur peut-être decimale
    Dim TheCell As Range, CellFind As Range
    Dim Matricule As String
     
    'On pointe les différentes feuilles à l'aide de variables (pratique si tu les utilises plusieur fois dans ta macro)
    Set SheetReq = ThisWorkbook.Sheets("Requête")
    Set SheetBD = ThisWorkbook.Sheets("BD")
    Set SheetMaJ = ThisWorkbook.Sheets("MAJ")
     
    'On va chercher nos infos
    NumMois = SheetMaJ.Range("C1")
     
     
    'On boucle sur les cellule contenu dans la colonneL
    For Each TheCell In SheetReq.Range("L2", SheetReq.Cells(SheetReq.Rows.Count, "L").End(xlUp))
        'On garde notre valeur en tête
        ValeurReq = TheCell.Value
        'On regarde si la cellule contient une valeur supérieur a 1
        If ValeurReq > 1 Then
            'On récupère le matricule (on regarde 11 colonnes en arrière pour voir la colonne A)
            Matricule = TheCell.Offset(0, -11)
            'On recherche le matricule dans DB
            Set CellFind = SheetBD.Columns("A").Find(Matricule, LookIn:=xlValues)
            'On verifie si un matricule correspondant a été trouvé
            If Not CellFind Is Nothing Then
                'On colle la valeur à sa place
                CellFind.Offset(0, NumMois) = ValeurReq
            End If
        End If
    'On passe à la cellule suivante
    Next
     
    End Sub
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Décembre 2010
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 13
    Points : 7
    Points
    7
    Par défaut
    Bonjour,

    Ce n'est pas du tout un début de code, mais LE CODE!
    J'ai juste modifié la ligne 4 de la manière suivante:
    Dim ValeurReq as Variant
    Car ça ne voulait fonctionner ni avec Long, ni avec Double.

    Merci pour ce code et pour les précisions qui l'accompagnent. Cela me permet de comprendre la démarche et j'espère que je vais pouvoir me servir de la logique pour continuer d'avancer le reste du projet.

    Encore merci pour le temps passé

    Bon week end

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

Discussions similaires

  1. [XL-MAC 2011] Combiner la fonction LOOKUP avec un COMBOBOX.
    Par jefmonde dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 12/02/2015, 10h42
  2. [AJAX] Combiner des fonctions Ajax
    Par isitien dans le forum AJAX
    Réponses: 19
    Dernier message: 22/01/2011, 11h08
  3. [XL-2007] Fonction Sommeprod et Décaler
    Par Domimart dans le forum Excel
    Réponses: 3
    Dernier message: 23/07/2010, 15h01
  4. Peut-on utiliser RECHERCHEV dans une fonction ?
    Par dany13 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 14/02/2008, 16h14
  5. [SQL] Combiner fonction d'agrégation et DISTINCT .
    Par p@radox dans le forum Langage SQL
    Réponses: 5
    Dernier message: 02/12/2004, 17h11

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