Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1703 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [EXCEL] Problème RECHERCHEV dynamique

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[EXCEL] Problème RECHERCHEV dynamique

n°1713911
jay-jay69
Posté le 07-04-2008 à 16:31:56  profilanswer
 

Salut à tous,
 
J'ai un petit souci dans la création d'un RECHERCHEV "dynamique" :
 

Code :
  1. =RECHERCHEV(M154;"z"&D154;3;FAUX)


 
Pour la valeur recherchée : pas de soucis, je fais appel à une cellule.
Pour la zone de recherche, ca se complique : je voudrais faire appel à une zone préalablement nommée du type "zMyZone". Je voudrais donc mettre dans mon RECHERCHEV la concaténation de "z" & de "MyZone" qui figure dans la cellule D154. Avez-vous une idée ?
 
Merci d'avance,
 
m.

mood
Publicité
Posté le 07-04-2008 à 16:31:56  profilanswer
 

n°1713922
babasss
Posté le 07-04-2008 à 16:41:20  profilanswer
 

En rajoutant un petit INDIRECT, ca doit marcher au poil :

Code :
  1. =RECHERCHEV(M154;INDIRECT("z"&D154);3;FAUX)



---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1713932
jay-jay69
Posté le 07-04-2008 à 16:49:28  profilanswer
 

SUPER !!!
C'est exactement ca !
 
Merci M'sieur !

n°1713965
jay-jay69
Posté le 07-04-2008 à 18:00:08  profilanswer
 

Excuse de te solliciter à nouveau, mais : as-tu une idée s'il est possible en VBA de vérifier l'existance d'une zone déclarée dans le classeur ? Un truc du genre :
 
If Range.Exist("zMyZone" ) ?
merci !
 

n°1713969
babasss
Posté le 07-04-2008 à 18:04:20  profilanswer
 

Je suis un peu moins bon en VBA. Au pire, tu peux appeler ta plage et mettre derrière une gestion d'erreur pour gérer cela...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1730880
jay-jay69
Posté le 12-05-2008 à 15:56:48  profilanswer
 

Décidément, j'adore le RechercheV !!! :)
 
Est-il possible de faire un recherchev sur une zone nommée, mais la valeur recherchée se trouvant dans la 2e colonne de la matrice ?
 
Alternative : définir une 2e zone a partir d'une premiere avec un offset d'une colonne...
 
Je ne sais pas si j'ai été clair...
 

n°1731001
Profil sup​primé
Posté le 12-05-2008 à 21:31:01  answer
 

Peut-être en combinant les fonctions INDEX et MATCH

n°1731080
babasss
Posté le 13-05-2008 à 10:13:47  profilanswer
 


C'est effectivement la seule solution à ma connaissance...


---------------
Feedback : http://forum.hardware.fr/hfr/Achat [...] 2666_1.htm
n°1731081
Xxxaaavvv
Posté le 13-05-2008 à 10:14:52  profilanswer
 

jay-jay69 a écrit :

Excuse de te solliciter à nouveau, mais : as-tu une idée s'il est possible en VBA de vérifier l'existance d'une zone déclarée dans le classeur ? Un truc du genre :
 
If Range.Exist("zMyZone" ) ?
merci !
 


ta zone fait parti d'une collection VBA appelée "Name"
 
exemple de suppression de zone :
ActiveWorkbook.Names("MaPlagedeTri" ).Delete
 
si tu doit tester sa présence
je te conseil d'essayé d'accéder a ta zone, avec un on error...
si ton code par en erreur, c'est que ta zone n'existe pas...

n°1731151
kiki29
Posté le 13-05-2008 à 13:08:24  profilanswer
 

Salut, sans doute à adapter


Option Explicit
Option Compare Text
 
Private Function ExistenceNomRange(sNom As String, Optional sNomWkb As String) As Boolean
Dim Rng As Range, i As Long
 
    If sNomWkb = vbNullString Then sNomWkb = ActiveWorkbook.Name
 
    If ClasseurExiste(sNomWkb) Then
        With Workbooks(sNomWkb)
            On Error Resume Next
            For i = 1 To .Sheets.Count
                Set Rng = .Sheets(i).Range(sNom)
                If Err = 0 Then
                    ExistenceNomRange = True
                    Exit Function
                Else
                    Err.Clear
                End If
            Next i
        End With
    Else
        MsgBox sNomWkb & " introuvable"
    End If
End Function
 
Private Function ClasseurExiste(sNomClasseur As String) As Boolean
    On Error Resume Next
    ClasseurExiste = Workbooks(sNomClasseur).Name <> ""
    Err.Clear
End Function
 
Sub Tst()
    MsgBox ExistenceNomRange("Test", "Classeur2.xls" )
    MsgBox ExistenceNomRange("Test" )  
End Sub


Message édité par kiki29 le 13-05-2008 à 13:55:05
mood
Publicité
Posté le 13-05-2008 à 13:08:24  profilanswer
 

n°1731514
jay-jay69
Posté le 14-05-2008 à 10:24:54  profilanswer
 

Merci pour vos réponses... je vais étudier tout ca !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [EXCEL] Problème RECHERCHEV dynamique

 

Sujets relatifs
Problème template template [RESOLU]probleme de driver jdbc
Problème d'edition de lienFaire un menu dynamique
Problème compilation Libcaca (pour VLC)sql access probleme de requete
Problème compilation Libcaca (pour VLC)[jdbc] probleme d'ajout du driver
Problème css : height: 100%; ne prend pas toute la hauteurGénérer des fichiers Excel en PHP sur un serveur Linux
Plus de sujets relatifs à : [EXCEL] Problème RECHERCHEV dynamique


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR