application.match vers un autre feuillet

Le
daniel
Bonsoir,
C'est sur le MPFE que l'on m'a donné la macro ci-dessous (enfin il n'y en a
qu'une partie), qui fonctionne très bien encore merci.
Mais je souhaiterais aujourd'hui, que la recherche se fasse dans une liste
nommée, mais qui se trouve dans un autre onglet, et là, cela ne fonctionne
pas. Après recherche dans l'aide Excel, je n'ai même pas trouvé
application.match.
Mes questions sont : comment faire la recherche dans une liste nommée, mais
se trouvant dans un autre feuillet et comment faire une recherche efficace
dans l'aide Excel pour ce type de fonction "Application.match".

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ligne

If Target.Column = 4 And Target.Row > 3 And Target.Value > 0 Then
Ligne = Application.Match(Target.Value, Range("PAD"), 0)
If Not IsNumeric(Ligne) Then
On Error Resume Next
MsgBox Target.Value & " : ce critère ne fait pas partie de
la liste."
Exit Sub
Else
Target.Offset(0, -1).Value =
WorksheetFunction.Index(Range("VEIN"), Ligne, 1)
End If
End If
..
End sub

Par avance, merci pour les réponses que vous pourrez me donner.
Bonne soirée.

DanielH
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #5230391
bonjour Daniel,

que veut dire "un autre feuillet" un autre onglet ou un autre classeur ?

isabelle

Bonsoir,
C'est sur le MPFE que l'on m'a donné la macro ci-dessous (enfin il n'y en a
qu'une partie), qui fonctionne très bien... encore merci.
Mais je souhaiterais aujourd'hui, que la recherche se fasse dans une liste
nommée, mais qui se trouve dans un autre onglet, et là, cela ne fonctionne
pas. Après recherche dans l'aide Excel, je n'ai même pas trouvé
application.match.
Mes questions sont : comment faire la recherche dans une liste nommée, mais
se trouvant dans un autre feuillet et comment faire une recherche efficace
dans l'aide Excel pour ce type de fonction "Application.match".

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ligne
......
If Target.Column = 4 And Target.Row > 3 And Target.Value > 0 Then
Ligne = Application.Match(Target.Value, Range("PAD"), 0)
If Not IsNumeric(Ligne) Then
On Error Resume Next
MsgBox Target.Value & " : ce critère ne fait pas partie de
la liste."
Exit Sub
Else
Target.Offset(0, -1).Value =
WorksheetFunction.Index(Range("VEIN"), Ligne, 1)
End If
End If
.....
End sub

Par avance, merci pour les réponses que vous pourrez me donner.
Bonne soirée.

DanielH




daniel
Le #5230381
Bonjour, bonsoir, Isabelle,
Le feuillet ou onglet est bien dans le même classeur.
Daniel H

"isabelle" a écrit dans le message de news:
uacoM$
bonjour Daniel,

que veut dire "un autre feuillet" un autre onglet ou un autre classeur ?

isabelle

Bonsoir,
C'est sur le MPFE que l'on m'a donné la macro ci-dessous (enfin il n'y en
a qu'une partie), qui fonctionne très bien... encore merci.
Mais je souhaiterais aujourd'hui, que la recherche se fasse dans une
liste nommée, mais qui se trouve dans un autre onglet, et là, cela ne
fonctionne pas. Après recherche dans l'aide Excel, je n'ai même pas
trouvé application.match.
Mes questions sont : comment faire la recherche dans une liste nommée,
mais se trouvant dans un autre feuillet et comment faire une recherche
efficace dans l'aide Excel pour ce type de fonction "Application.match".

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ligne
......
If Target.Column = 4 And Target.Row > 3 And Target.Value > 0 Then
Ligne = Application.Match(Target.Value, Range("PAD"), 0)
If Not IsNumeric(Ligne) Then
On Error Resume Next
MsgBox Target.Value & " : ce critère ne fait pas partie
de la liste."
Exit Sub
Else
Target.Offset(0, -1).Value =
WorksheetFunction.Index(Range("VEIN"), Ligne, 1)
End If
End If
.....
End sub

Par avance, merci pour les réponses que vous pourrez me donner.
Bonne soirée.

DanielH




Misange
Le #5230171
comment faire une recherche efficace
dans l'aide Excel pour ce type de fonction "Application.match".


Bonsoir,

lorsqu'une instruction VBA commence par application. ou
application.worksheetfunction.
cela veut dire que VBA utilise une fonction prédéfinie d'excel, ici
match. Le problème c'est que VA cause english alors que nos feuilles
causent en français.
match en anglais c'est equiv en français. Pour connaître ces
équivalences dans les noms de fonction, tu as un classeur VBAlist que tu
trouves soit sur ton PC (installé avec excel) soit sur excelabo. Sur
excelabo il y a aussi plusieurs classeurs de traduction de fonction
(tape ce mot dans le moteur de recherche du site).
Une façon de connaître l'équivlent anglais d'une fonction en français
c'est de lancer l'enregistreur de macros. Il te fait automatiquement la
traduction. Dans l'autre sens c'est plus coton !

--
Misange migrateuse
XlWiki : Participez à un travail collaboratif sur excel !
http://xlwiki.free.fr/wiki
http://www.excelabo.net

isabelle
Le #5230081
bonjour Daniel,

Ligne = Application.Match(Target.Value, Sheets("Feuil1").Range("PAD"), 0)

isabelle

Bonjour, bonsoir, Isabelle,
Le feuillet ou onglet est bien dans le même classeur.
Daniel H

"isabelle" a écrit dans le message de news:
uacoM$
bonjour Daniel,

que veut dire "un autre feuillet" un autre onglet ou un autre classeur ?

isabelle

Bonsoir,
C'est sur le MPFE que l'on m'a donné la macro ci-dessous (enfin il n'y en
a qu'une partie), qui fonctionne très bien... encore merci.
Mais je souhaiterais aujourd'hui, que la recherche se fasse dans une
liste nommée, mais qui se trouve dans un autre onglet, et là, cela ne
fonctionne pas. Après recherche dans l'aide Excel, je n'ai même pas
trouvé application.match.
Mes questions sont : comment faire la recherche dans une liste nommée,
mais se trouvant dans un autre feuillet et comment faire une recherche
efficace dans l'aide Excel pour ce type de fonction "Application.match".

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
Dim Ligne
......
If Target.Column = 4 And Target.Row > 3 And Target.Value > 0 Then
Ligne = Application.Match(Target.Value, Range("PAD"), 0)
If Not IsNumeric(Ligne) Then
On Error Resume Next
MsgBox Target.Value & " : ce critère ne fait pas partie
de la liste."
Exit Sub
Else
Target.Offset(0, -1).Value =
WorksheetFunction.Index(Range("VEIN"), Ligne, 1)
End If
End If
.....
End sub

Par avance, merci pour les réponses que vous pourrez me donner.
Bonne soirée.

DanielH








JB
Le #5230041
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 4 And Target.Row > 3 And Target.Value > 0 Then
Ligne = Application.Match(Target.Value, Sheets("feuil3").[PAD], 0)
If IsError(Ligne) Then
MsgBox Target.Value & " : ce critère ne fait pas partie de la
liste."
Else
Target.Offset(0, -1).Value = Application.Index(Sheets("feuil3").
[VEIN], Ligne, 1)
End If
End If
End Sub

http://cjoint.com/?dohacvmZCG

JB

On 13 mar, 19:11, "daniel"
Bonsoir,
C'est sur le MPFE que l'on m'a donné la macro ci-dessous (enfin il n'y e n a
qu'une partie), qui fonctionne très bien... encore merci.
Mais je souhaiterais aujourd'hui, que la recherche se fasse dans une liste
nommée, mais qui se trouve dans un autre onglet, et là, cela ne foncti onne
pas. Après recherche dans l'aide Excel, je n'ai même pas trouvé
application.match.
Mes questions sont : comment faire la recherche dans une liste nommée, m ais
se trouvant dans un autre feuillet et comment faire une recherche efficace
dans l'aide Excel pour ce type de fonction "Application.match".

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
    Dim Ligne
......
If Target.Column = 4 And Target.Row > 3 And Target.Value > 0 Then
    Ligne = Application.Match(Target.Value, Range("PAD"), 0)
        If Not IsNumeric(Ligne) Then
            On Error Resume Next
                MsgBox Target.Value & " : ce critère ne fait pas partie de
la liste."
            Exit Sub
        Else
            Target.Offset(0, -1).Value =
WorksheetFunction.Index(Range("VEIN"), Ligne, 1)
            End If
        End If
.....
End sub

Par avance, merci pour les réponses que vous pourrez me donner.
Bonne soirée.

DanielH


daniel
Le #5228481
Bonjour,
Avec un peu de retard, merci beaucoup pour votre gentillesse.
Bonne journée.

Daniel H.
Publicité
Poster une réponse
Anonyme