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

Le
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
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Daniel.C
Le #18402701
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


PJ
Le #18402771
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





michdenis
Le #18402981
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"
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
Daniel.C
Le #18402971
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




PJ
Le #18403081
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"
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



PJ
Le #18403551
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"
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



michdenis
Le #18404041
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"
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"
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



PJ
Le #18404021
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"
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" >
> 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
>


michdenis
Le #18404401
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"
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"
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" >
> 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
>


PJ
Le #18424011
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"
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" >
> 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" > >
> > 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
> >


Publicité
Poster une réponse
Anonyme