Le Texbox reste coincé

Le
frasax
Bonjour à toutes et à tous,

J'ai la macro suivante :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

Si j'exécute par erreur 2x la même entrée, c'est-à-dire que le même N°
d'article est entré deux fois, le MsgBox "Saisissez un autre numéro, celui-ci
existe déjà", reste coincé.
Y a t-il une solution pour remédier à ce problème ?
Merci d'avance de votre aide et à +
Questions / Réponses high-tech
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
Youky
Le #6429781
Salut
.EnableEvent empêche l'évenement d'avoir lieu le temps d'effectuer le
changement
Youky

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Application.EnableEvents = False
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
Target.Select
Application.EnableEvents = True
End If
End If
End Sub

"frasax"
Bonjour à toutes et à tous,

J'ai la macro suivante :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

Si j'exécute par erreur 2x la même entrée, c'est-à-dire que le même N°
d'article est entré deux fois, le MsgBox "Saisissez un autre numéro,
celui-ci
existe déjà", reste coincé.
Y a t-il une solution pour remédier à ce problème ?
Merci d'avance de votre aide et à +




frasax
Le #6430111
Salut Youky,

OK ça ne coince plus, mais le problème c'est que le Texbox n'apparaît plus.
Je n'arrive pas à joindre le dossier qui fait 345Ko.
Encore merci et à +



Salut
..EnableEvent empêche l'évenement d'avoir lieu le temps d'effectuer le
changement
Youky

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Application.EnableEvents = False
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
Target.Select
Application.EnableEvents = True
End If
End If
End Sub

"frasax"
Bonjour à toutes et à tous,

J'ai la macro suivante :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

Si j'exécute par erreur 2x la même entrée, c'est-à-dire que le même N°
d'article est entré deux fois, le MsgBox "Saisissez un autre numéro,
celui-ci
existe déjà", reste coincé.
Y a t-il une solution pour remédier à ce problème ?
Merci d'avance de votre aide et à +









francois.forcet
Le #6430391
Salut à toi

Et ton code modifié ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

n'est ce pas mieux ????

Dis moi !!!!!
frasax
Le #6431341
Salut,
Non, maintenant c'est la ligne If Target.Column = 6 And Target.Value <> "PAS
VALIDE" Then qui pose problème.
Enfin j'ai pu mettre le fichier en joint à consulter
http://cjoint.com/?eDoJHazyCr
J'espère que ça pourra aider
Encore merci et à +

frasax




Salut à toi

Et ton code modifié ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End Sub

n'est ce pas mieux ????

Dis moi !!!!!



francois.forcet
Le #6431641
Rebonjour à toi

Chez moi ton fichier fonctionne à la perfection à l'exception de la
suppression du contenu de plusieurs cellules en même temps de la
colonne F où effectivement un Bug se produit sur la ligne :

If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then

Pour éviter cet inconvénient j'ai modifié le code quelques peu ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Selection.Cells.Count = 1 Then
If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End If
End Sub

Celà fonctionne ainsi parfaitement

Sur ce lien ton document modifié dans cet esprit :

http://www.cijoint.fr/cjlink.php?file=cj200804/cijSYpRijq.xls.


Donne moi ton avis !!!!
frasax
Le #6432061
Rebonjour,

Chez moi ça fonctionne pas j'ai l'erreur d'exécution 13
Incompatibilité de type
Je suis sous Windows XP Home Office 2003 au cas où ça aurait de l'importance
Dit moi si ça peut influencer
Merci et à +



Rebonjour à toi

Chez moi ton fichier fonctionne à la perfection à l'exception de la
suppression du contenu de plusieurs cellules en même temps de la
colonne F où effectivement un Bug se produit sur la ligne :

If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then

Pour éviter cet inconvénient j'ai modifié le code quelques peu ainsi :

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Selection.Cells.Count = 1 Then
If Target.Column = 6 And Target.Value <> "PAS VALIDE" Then
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End If
End If
End Sub

Celà fonctionne ainsi parfaitement

Sur ce lien ton document modifié dans cet esprit :

http://www.cijoint.fr/cjlink.php?file=cj200804/cijSYpRijq.xls.


Donne moi ton avis !!!!



francois.forcet
Le #6432461
Rebonjour à toi

As tu essayé avec le fichier que je t'ai tranmis ????
je ne pense pas que le système d'exploitation est une quelconque
influence

Essaies de rebooter ton PC et de réaliser une nouvelle tentative

Dans la négative donnes moi exactement la saisie que tu réalises pour
que je réessaye de mon côté à l'identique
Peut être sur un certain paramètre ou une manière de procéder le Bug
se déclencherait il et que je n'ai pas testé
Ce serait surprenant mais pourquoi pas

Tiens moi informé
frasax
Le #6432431
Rebonjour,

Le problème c'est que je ne serai pas seul à utiliser le programme
Or, ce qui ce passe c'est que le Texbox pour mettre fin à l'erreur
posera un problème à l'utilisateur, il ne saura pas s'il faut cliquer
sur fin ou sur debogage et que certainement je mettrai une protection
à la macro, dans ce cas s'il presse sur debogage, il saura pas quoi
faire pour en sortir
J'espère être compréhensif dans mon explication ?
Le problème est donc si après 2 entrée du même N° Art. selon mon
dossier joint l'Art. N° 154, si je le transfère 2 x ça bogue
Merci de bien vouloir encore essayer avec mon fichier et à +


Rebonjour à toi

As tu essayé avec le fichier que je t'ai tranmis ????
je ne pense pas que le système d'exploitation est une quelconque
influence

Essaies de rebooter ton PC et de réaliser une nouvelle tentative

Dans la négative donnes moi exactement la saisie que tu réalises pour
que je réessaye de mon côté à l'identique
Peut être sur un certain paramètre ou une manière de procéder le Bug
se déclencherait il et que je n'ai pas testé
Ce serait surprenant mais pourquoi pas

Tiens moi informé



frasax
Le #6432841
RERE,

J'ai omis que c'est avec ta macro que j'ai testé non pas avec mon
fichier, à +



Rebonjour,

Le problème c'est que je ne serai pas seul à utiliser le programme
Or, ce qui ce passe c'est que le Texbox pour mettre fin à l'erreur
posera un problème à l'utilisateur, il ne saura pas s'il faut cliquer
sur fin ou sur debogage et que certainement je mettrai une protection
à la macro, dans ce cas s'il presse sur debogage, il saura pas quoi
faire pour en sortir
J'espère être compréhensif dans mon explication ?
Le problème est donc si après 2 entrée du même N° Art. selon mon
dossier joint l'Art. N° 154, si je le transfère 2 x ça bogue
Merci de bien vouloir encore essayer avec mon fichier et à +


Rebonjour à toi

As tu essayé avec le fichier que je t'ai tranmis ????
je ne pense pas que le système d'exploitation est une quelconque
influence

Essaies de rebooter ton PC et de réaliser une nouvelle tentative

Dans la négative donnes moi exactement la saisie que tu réalises pour
que je réessaye de mon côté à l'identique
Peut être sur un certain paramètre ou une manière de procéder le Bug
se déclencherait il et que je n'ai pas testé
Ce serait surprenant mais pourquoi pas

Tiens moi informé





PMO
Le #6432821
Bonjour,

A tout hasard, essayez

''************
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
If Target.Column <> 6 Then Exit Sub
If CStr(Target.Value) = "PAS VALIDE" Then Exit Sub
If Application.WorksheetFunction. _
CountIf(Range("F:F"), Target.Value) > 1 Then
MsgBox "Saisissez un autre numéro, celui-ci existe déjà"
Target.Value = "PAS VALIDE"
Target.Font.ColorIndex = 3
Target.Font.Bold = True
End If
End Sub
''************

Cordialement.

PMO
Patrick Morange
Publicité
Poster une réponse
Anonyme