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 a double critéres en fonction de ligne & colonne


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut Recherchev a double critéres en fonction de ligne & colonne
    Bonjour,
    J'ai lu cette discussion.
    Je bute également sur un problème identique mais ne suis pas arrivé à retranscrire la macro de rdurupt. Dans mon fichier joint, je cherche à ramener dans la colonne X de la feuille gestion (colonne X en jaune) la valeur correspondante au compte précisé ds l'entête de cette colonne (soit ici 70720000) et au numéro ctr (colonne G) retrouvé dans la feuille CONVERT colonne E et colonne I. Rdurupt si tu es encore dans les parages je suis preneur de tes conseils...
    Merci pour votre coup de pouce les gars

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    Je suis sur un téléphone, place un imprime écran de tes onglets.

  3. #3
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    test_rp_cumul.xlsx
    Merci pour ta réponse, Comme ça tu y vois mieux?

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonjour,
    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
    Function CodeGénéral(CodeAffaire, ValEntete, Feuille As String, CodeAffaireC As String, ValEnteteC As String, RetournC) As Double
    Dim L As Long
    L = 1
    Do While L > 0
    L = SerchXls(Sheets(Feuille).Range(CodeAffaireC & ":" & CodeAffaireC), Sheets(Feuille).Range(CodeAffaireC & L), CodeAffaire, True)
     
    If L > 0 Then
    If UCase(Sheets(Feuille).Cells(L, ValEnteteC)) = UCase(ValEntete) Then CodeGénéral = CodeGénéral + Val(Replace(Sheets(Feuille).Cells(L, RetournC), ",", "."))
    End If
    Loop
    End Function
     
    Function SerchXls(Myrange As Range, MyCellule As Range, strRecherche, EntierCell As Boolean) As Long '
    On Error Resume Next
    Dim CellEntrier As Integer
    If EntierCell = True Then CellEntrier = xlWhole Else CellEntrier = xlPart
    SerchXls = 0
       SerchXls = Myrange.Cells.Find(what:=strRecherche, After:=MyCellule, LookIn:=xlFormulas, LookAt _
            :=CellEntrier, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
            False, SearchFormat:=EntierCell).Row
      If SerchXls <= MyCellule.Row Then SerchXls = 0
    End Function
    Fichiers attachés Fichiers attachés

  5. #5
    Membre confirmé
    Inscrit en
    Juillet 2008
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 156
    Par défaut
    Merci RDURUPT ça marche nikel, j'ai essayé de la reproduire pour faire la recherche inverse, soit ramener ds la CONVERT colonne Q la valeur trouvée en feuil1, mais je n'y arrive pas, où est ce que je me plante? Que définis le subtest() de départ dans ton code?

    Merci en tout cas pour ton apprentissage!
    Fichiers attachés Fichiers attachés

  6. #6
    Invité
    Invité(e)
    Par défaut
    c'est un rechercheVà 2 entrées! il recherche les 2 valeur sur la même ligne pas en [X1]!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If UCase(Sheets(Feuille).Cells(L, ValEnteteC)) = UCase(ValEntete) Then CodeGénéral = CodeGénéral + Val(Replace(Sheets(Feuille).Cells(L, RetournC), ",", "."))
    Code Feuil1 OK : Sélectionner tout - Visualiser dans une fenêtre à part
    =CodeGénéral(G2;$X$1;"CONVERT";"i";"E";"m")

    Code CONVERT Ko : Sélectionner tout - Visualiser dans une fenêtre à part
    =CodeGénéral(I178;E178;"Feuil1";"g";"X";"w")
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Function InvCodeGénéral(CodeAffaire, ValEntete, Feuille As String, CodeAffaireC As String, ValEnteteC As String, RetournC) As Double
    Dim L As Long
    L = 1
    Do While L > 0
    L = SerchXls(Sheets(Feuille).Range(CodeAffaireC & ":" & CodeAffaireC), Sheets(Feuille).Range(CodeAffaireC & L), CodeAffaire, True)
     
    If L > 0 Then
    If UCase(Sheets(Feuille).range(ValEnteteC)) = UCase(ValEntete) Then InvCodeGénéral = InvCodeGénéral + Val(Replace(Sheets(Feuille).Cells(L, RetournC), ",", "."))
    End If
    Loop
    End Function

    Code CONVERT Ok : Sélectionner tout - Visualiser dans une fenêtre à part
    =InvCodeGénéral(I178;E178;"Feuil1";"g";"$x$1";"w")
    Dernière modification par Invité ; 09/09/2015 à 18h23.

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

Discussions similaires

  1. [XL-2013] Copiage de ligne selon double critère (date et présence dans une liste)
    Par VictorienR dans le forum Macros et VBA Excel
    Réponses: 13
    Dernier message: 26/03/2015, 10h02
  2. [XL-2010] Recherchev a double critéres en fonction de ligne & colonne
    Par chafoo dans le forum Macros et VBA Excel
    Réponses: 11
    Dernier message: 15/12/2014, 14h22
  3. Requete en fonction de lignes et de colonnes
    Par LyLy_91 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 28/06/2007, 10h31
  4. fonction imbriqué ligne(),NB.SI()
    Par kickoune dans le forum Excel
    Réponses: 2
    Dernier message: 25/05/2007, 10h10
  5. Réponses: 2
    Dernier message: 30/08/2006, 16h08

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