Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Problème sur recherche auto de l'existance d'une valeur

11 réponses
Avatar
PJ
Bonjour,

Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
la créant) sinon j'affiche un message d'existance et je sors de la sub via
exit sub. Le problème que je rencontre est le suivant:
Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
idée?

Voici le code:
Sub cherch()
Dim Plage As Range
Dim Var as string
Sheets("ref").Select
Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
Var = Worksheets("Résumé_Cmde").Range("D9").Value
If Application.Match(Var, Plage, 0) Then
MsgBox ("Cette référence existe déjà, merci d'en retaper
une autre")
Exit Sub
Else
MsgBox ("toto")
End If
End Sub

Merci d'avance

PJ

10 réponses

1 2
Avatar
Daniel.C
Bonjour.
Quel est le message d'erreur ?
Cordialement.
Daniel

Bonjour,

Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
la créant) sinon j'affiche un message d'existance et je sors de la sub via
exit sub. Le problème que je rencontre est le suivant:
Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
idée?

Voici le code:
Sub cherch()
Dim Plage As Range
Dim Var as string
Sheets("ref").Select
Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
Var = Worksheets("Résumé_Cmde").Range("D9").Value
If Application.Match(Var, Plage, 0) Then
MsgBox ("Cette référence existe déjà, merci d'en retaper
une autre")
Exit Sub
Else
MsgBox ("toto")
End If
End Sub

Merci d'avance

PJ


Avatar
PJ
Merci daniel de ton aide.
Le message est:

Erreur d'exécution '13':
Incompatibilité de type


Voilà.
PJ

"Daniel.C" wrote:

Bonjour.
Quel est le message d'erreur ?
Cordialement.
Daniel

> Bonjour,
>
> Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
> chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
> n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
> la créant) sinon j'affiche un message d'existance et je sors de la sub via
> exit sub. Le problème que je rencontre est le suivant:
> Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
> idée?
>
> Voici le code:
> Sub cherch()
> Dim Plage As Range
> Dim Var as string
> Sheets("ref").Select
> Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
> Var = Worksheets("Résumé_Cmde").Range("D9").Value
> If Application.Match(Var, Plage, 0) Then
> MsgBox ("Cette référence existe déjà, merci d'en retaper
> une autre")
> Exit Sub
> Else
> MsgBox ("toto")
> End If
> End Sub
>
> Merci d'avance
>
> PJ





Avatar
michdenis
Sub cherch()
Dim Plage As Range
Dim Var As String

With Worksheets("ref")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Var = Worksheets("Résumé_Cmde").Range("D9").Value
On Error Resume Next
x = Application.Match(Var, Plage, 0)
If IsError(x) = True Then
MsgBox Var
Else
Err = 0
MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
Exit Sub
End If
End Sub





"PJ" a écrit dans le message de groupe de discussion :

Bonjour,

Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
la créant) sinon j'affiche un message d'existance et je sors de la sub via
exit sub. Le problème que je rencontre est le suivant:
Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
idée?

Voici le code:
Sub cherch()
Dim Plage As Range
Dim Var as string
Sheets("ref").Select
Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
Var = Worksheets("Résumé_Cmde").Range("D9").Value
If Application.Match(Var, Plage, 0) Then
MsgBox ("Cette référence existe déjà, merci d'en retaper
une autre")
Exit Sub
Else
MsgBox ("toto")
End If
End Sub

Merci d'avance

PJ
Avatar
Daniel.C
Est-ce que tu as défini Var et si oui, quel type lui as-tu affecté ?
Ajoute :
MsgBox Var
msgBox Application.Match(Var, Plage, 0)
avant la ligne en erreur et poste les résultats.
Daniel

Bonjour.
Quel est le message d'erreur ?
Cordialement.
Daniel

Bonjour,

Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
la créant) sinon j'affiche un message d'existance et je sors de la sub via
exit sub. Le problème que je rencontre est le suivant:
Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
idée?

Voici le code:
Sub cherch()
Dim Plage As Range
Dim Var as string
Sheets("ref").Select
Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
Var = Worksheets("Résumé_Cmde").Range("D9").Value
If Application.Match(Var, Plage, 0) Then
MsgBox ("Cette référence existe déjà, merci d'en
retaper une autre")
Exit Sub
Else
MsgBox ("toto")
End If
End Sub

Merci d'avance

PJ




Avatar
PJ
Merci Michel cela fonctionne parfaitement!
Merci encore à Daniel également.
Bonne fin de Journée à tous les 2.

Salutations
PJ

"michdenis" wrote:

Sub cherch()
Dim Plage As Range
Dim Var As String

With Worksheets("ref")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Var = Worksheets("Résumé_Cmde").Range("D9").Value
On Error Resume Next
x = Application.Match(Var, Plage, 0)
If IsError(x) = True Then
MsgBox Var
Else
Err = 0
MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
Exit Sub
End If
End Sub





"PJ" a écrit dans le message de groupe de discussion :

Bonjour,

Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
la créant) sinon j'affiche un message d'existance et je sors de la sub via
exit sub. Le problème que je rencontre est le suivant:
Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
idée?

Voici le code:
Sub cherch()
Dim Plage As Range
Dim Var as string
Sheets("ref").Select
Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
Var = Worksheets("Résumé_Cmde").Range("D9").Value
If Application.Match(Var, Plage, 0) Then
MsgBox ("Cette référence existe déjà, merci d'en retaper
une autre")
Exit Sub
Else
MsgBox ("toto")
End If
End Sub

Merci d'avance

PJ



Avatar
PJ
Rebonjour Michel,

Si je tape un chiffre ou un nombre, ça ne marche pas et cela me dit que la
réf existe déjà.
As-tu une idée?

Merci
PJ

"michdenis" wrote:

Sub cherch()
Dim Plage As Range
Dim Var As String

With Worksheets("ref")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Var = Worksheets("Résumé_Cmde").Range("D9").Value
On Error Resume Next
x = Application.Match(Var, Plage, 0)
If IsError(x) = True Then
MsgBox Var
Else
Err = 0
MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
Exit Sub
End If
End Sub





"PJ" a écrit dans le message de groupe de discussion :

Bonjour,

Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
la créant) sinon j'affiche un message d'existance et je sors de la sub via
exit sub. Le problème que je rencontre est le suivant:
Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
idée?

Voici le code:
Sub cherch()
Dim Plage As Range
Dim Var as string
Sheets("ref").Select
Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
Var = Worksheets("Résumé_Cmde").Range("D9").Value
If Application.Match(Var, Plage, 0) Then
MsgBox ("Cette référence existe déjà, merci d'en retaper
une autre")
Exit Sub
Else
MsgBox ("toto")
End If
End Sub

Merci d'avance

PJ



Avatar
michdenis
Avec Match, l'élément trouvé doit être du même
type que le contenu de tes cellules...

Remplace Match par Find et tu vas avoir plus de souplesse !

'----------------------------------
Sub cherch()
Dim Plage As Range, Trouve As Range
Dim Var As String

With Worksheets("Ref")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Var = Worksheets("Résumé_Cmde").Range("D9").Value
With Plage
Set Trouve = .Find(Var, , xlValues, xlWhole)
End With
If Trouve Is Nothing Then
MsgBox Var
Else
MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
Exit Sub
End If
End Sub
'----------------------------------



"PJ" a écrit dans le message de groupe de discussion :

Rebonjour Michel,

Si je tape un chiffre ou un nombre, ça ne marche pas et cela me dit que la
réf existe déjà.
As-tu une idée?

Merci
PJ

"michdenis" wrote:

Sub cherch()
Dim Plage As Range
Dim Var As String

With Worksheets("ref")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Var = Worksheets("Résumé_Cmde").Range("D9").Value
On Error Resume Next
x = Application.Match(Var, Plage, 0)
If IsError(x) = True Then
MsgBox Var
Else
Err = 0
MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
Exit Sub
End If
End Sub





"PJ" a écrit dans le message de groupe de discussion :

Bonjour,

Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
la créant) sinon j'affiche un message d'existance et je sors de la sub via
exit sub. Le problème que je rencontre est le suivant:
Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
idée?

Voici le code:
Sub cherch()
Dim Plage As Range
Dim Var as string
Sheets("ref").Select
Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
Var = Worksheets("Résumé_Cmde").Range("D9").Value
If Application.Match(Var, Plage, 0) Then
MsgBox ("Cette référence existe déjà, merci d'en retaper
une autre")
Exit Sub
Else
MsgBox ("toto")
End If
End Sub

Merci d'avance

PJ



Avatar
PJ
Hélàs michel,

J'ai le même résultat;
Si j'essaye avec 2000G, pas de pb mais si j'essaye avec 22 ce n'est pas bon.

Merci
PJ

"michdenis" wrote:

Avec Match, l'élément trouvé doit être du même
type que le contenu de tes cellules...

Remplace Match par Find et tu vas avoir plus de souplesse !

'----------------------------------
Sub cherch()
Dim Plage As Range, Trouve As Range
Dim Var As String

With Worksheets("Ref")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Var = Worksheets("Résumé_Cmde").Range("D9").Value
With Plage
Set Trouve = .Find(Var, , xlValues, xlWhole)
End With
If Trouve Is Nothing Then
MsgBox Var
Else
MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
Exit Sub
End If
End Sub
'----------------------------------



"PJ" a écrit dans le message de groupe de discussion :

Rebonjour Michel,

Si je tape un chiffre ou un nombre, ça ne marche pas et cela me dit que la
réf existe déjà.
As-tu une idée?

Merci
PJ

"michdenis" wrote:

> Sub cherch()
> Dim Plage As Range
> Dim Var As String
>
> With Worksheets("ref")
> Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
> End With
> Var = Worksheets("Résumé_Cmde").Range("D9").Value
> On Error Resume Next
> x = Application.Match(Var, Plage, 0)
> If IsError(x) = True Then
> MsgBox Var
> Else
> Err = 0
> MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
> Exit Sub
> End If
> End Sub
>
>
>
>
>
> "PJ" a écrit dans le message de groupe de discussion :
>
> Bonjour,
>
> Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
> chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
> n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
> la créant) sinon j'affiche un message d'existance et je sors de la sub via
> exit sub. Le problème que je rencontre est le suivant:
> Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
> idée?
>
> Voici le code:
> Sub cherch()
> Dim Plage As Range
> Dim Var as string
> Sheets("ref").Select
> Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
> Var = Worksheets("Résumé_Cmde").Range("D9").Value
> If Application.Match(Var, Plage, 0) Then
> MsgBox ("Cette référence existe déjà, merci d'en retaper
> une autre")
> Exit Sub
> Else
> MsgBox ("toto")
> End If
> End Sub
>
> Merci d'avance
>
> PJ
>


Avatar
michdenis
Ben il va falloir que tu t'expliques :

Qu'as-tu dans ces cellules ? Des données seulement,
des formules qui retournent des données ?

Est-ce que 22 ou 2000G représente le contenu entier ou partiel de la cellule ?

Moi, je n'arrive pas à reproduire une erreur !




"PJ" a écrit dans le message de groupe de discussion :

Hélàs michel,

J'ai le même résultat;
Si j'essaye avec 2000G, pas de pb mais si j'essaye avec 22 ce n'est pas bon.

Merci
PJ

"michdenis" wrote:

Avec Match, l'élément trouvé doit être du même
type que le contenu de tes cellules...

Remplace Match par Find et tu vas avoir plus de souplesse !

'----------------------------------
Sub cherch()
Dim Plage As Range, Trouve As Range
Dim Var As String

With Worksheets("Ref")
Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
End With
Var = Worksheets("Résumé_Cmde").Range("D9").Value
With Plage
Set Trouve = .Find(Var, , xlValues, xlWhole)
End With
If Trouve Is Nothing Then
MsgBox Var
Else
MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
Exit Sub
End If
End Sub
'----------------------------------



"PJ" a écrit dans le message de groupe de discussion :

Rebonjour Michel,

Si je tape un chiffre ou un nombre, ça ne marche pas et cela me dit que la
réf existe déjà.
As-tu une idée?

Merci
PJ

"michdenis" wrote:

> Sub cherch()
> Dim Plage As Range
> Dim Var As String
>
> With Worksheets("ref")
> Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
> End With
> Var = Worksheets("Résumé_Cmde").Range("D9").Value
> On Error Resume Next
> x = Application.Match(Var, Plage, 0)
> If IsError(x) = True Then
> MsgBox Var
> Else
> Err = 0
> MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
> Exit Sub
> End If
> End Sub
>
>
>
>
>
> "PJ" a écrit dans le message de groupe de discussion :
>
> Bonjour,
>
> Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
> chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
> n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
> la créant) sinon j'affiche un message d'existance et je sors de la sub via
> exit sub. Le problème que je rencontre est le suivant:
> Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
> idée?
>
> Voici le code:
> Sub cherch()
> Dim Plage As Range
> Dim Var as string
> Sheets("ref").Select
> Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
> Var = Worksheets("Résumé_Cmde").Range("D9").Value
> If Application.Match(Var, Plage, 0) Then
> MsgBox ("Cette référence existe déjà, merci d'en retaper
> une autre")
> Exit Sub
> Else
> MsgBox ("toto")
> End If
> End Sub
>
> Merci d'avance
>
> PJ
>


Avatar
PJ
Bonjour Michel,

Je m'explique un peu plus.
Je remplie un userform avec une référence afin de créer un dossier.
Automatiquement se résume dans une petite fiche signalétique en excel toutes
ces données. Je commence à enregistrer mes valeurs du userform dans la
feuille excel et juste après la rentrée de ma référence, je fais le teste de
savoir si elle existe déjà ou pas. Pour le savoir, je fais donc une recherche
dans la feuille voisine REF, colonne A pour voir si elle existe. Si elle
existe, j'efface ma feuille et j'unload mon userform, sinon, je l'inscris
dans cette feuille, en historique.

J'espère avoir été clair et précis...
Voyez-vous un problème?

Merci
PJ

"michdenis" wrote:

Ben il va falloir que tu t'expliques :

Qu'as-tu dans ces cellules ? Des données seulement,
des formules qui retournent des données ?

Est-ce que 22 ou 2000G représente le contenu entier ou partiel de la cellule ?

Moi, je n'arrive pas à reproduire une erreur !




"PJ" a écrit dans le message de groupe de discussion :

Hélàs michel,

J'ai le même résultat;
Si j'essaye avec 2000G, pas de pb mais si j'essaye avec 22 ce n'est pas bon.

Merci
PJ

"michdenis" wrote:

> Avec Match, l'élément trouvé doit être du même
> type que le contenu de tes cellules...
>
> Remplace Match par Find et tu vas avoir plus de souplesse !
>
> '----------------------------------
> Sub cherch()
> Dim Plage As Range, Trouve As Range
> Dim Var As String
>
> With Worksheets("Ref")
> Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
> End With
> Var = Worksheets("Résumé_Cmde").Range("D9").Value
> With Plage
> Set Trouve = .Find(Var, , xlValues, xlWhole)
> End With
> If Trouve Is Nothing Then
> MsgBox Var
> Else
> MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
> Exit Sub
> End If
> End Sub
> '----------------------------------
>
>
>
> "PJ" a écrit dans le message de groupe de discussion :
>
> Rebonjour Michel,
>
> Si je tape un chiffre ou un nombre, ça ne marche pas et cela me dit que la
> réf existe déjà.
> As-tu une idée?
>
> Merci
> PJ
>
> "michdenis" wrote:
>
> > Sub cherch()
> > Dim Plage As Range
> > Dim Var As String
> >
> > With Worksheets("ref")
> > Set Plage = .Range("A2:A" & .Range("A65536").End(xlUp).Row)
> > End With
> > Var = Worksheets("Résumé_Cmde").Range("D9").Value
> > On Error Resume Next
> > x = Application.Match(Var, Plage, 0)
> > If IsError(x) = True Then
> > MsgBox Var
> > Else
> > Err = 0
> > MsgBox ("Cette référence existe déjà, merci d'en retaper une autre")
> > Exit Sub
> > End If
> > End Sub
> >
> >
> >
> >
> >
> > "PJ" a écrit dans le message de groupe de discussion :
> >
> > Bonjour,
> >
> > Je cherche à analyser si j'ai déjà utilisé une réf. Pour cela je garde
> > chaque réf dans un fichier et avant chaquecréation je veux vérifier qu'elle
> > n'existe pas. Si elle n'existe pas, j'affiche TOTO (en fait, je continue en
> > la créant) sinon j'affiche un message d'existance et je sors de la sub via
> > exit sub. Le problème que je rencontre est le suivant:
> > Lorsque la réf est existante, il plante mais je ne trouve pas pourquoi, un
> > idée?
> >
> > Voici le code:
> > Sub cherch()
> > Dim Plage As Range
> > Dim Var as string
> > Sheets("ref").Select
> > Set Plage = Worksheets("ref").Range("A2", Range("A65536").End(xlUp))
> > Var = Worksheets("Résumé_Cmde").Range("D9").Value
> > If Application.Match(Var, Plage, 0) Then
> > MsgBox ("Cette référence existe déjà, merci d'en retaper
> > une autre")
> > Exit Sub
> > Else
> > MsgBox ("toto")
> > End If
> > End Sub
> >
> > Merci d'avance
> >
> > PJ
> >


1 2