Vérification si une cellule est égale à un combobox
2 réponses
Paul-François
Bonsoir,
Pourquoi lorsque je demande une vérification de la cellule active égale au
combo1 elle ne se fait pas ?
Pourtant les 2 valeurs sont égales ?
J'ai essayé avec Me.Combo1.Value sans succès ! Où est mon erreur ?
Bas:
If ActiveCell = Combo1.Value Then
ActiveCell.Offset(0, 5).Copy
Worksheets("Feuil2").Activate
Range("A2").Activate
Bas1:
If ActiveCell = "" Then
ActiveSheet.Paste
Else
ActiveCell.Offset(7, 0).Activate
GoTo Bas1
End If
Else
ActiveCell.Offset(1, 0).Activate
GoTo Bas
End If
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
michdenis
Bonsoir Paul-François,
Avec un combobox et un textbox, il faut se rappeler que même si ces contrôles affichent une valeur numérique, ces derniers retournent une donnée TEXTE.
Supposons que tu as la valeur 10 dans une cellule et 10 comme valeur affichée dans un combobox. si tu fais la comparaison suivante : If ActiveCell = Combo1.Value Then , tu n'obtiendras pas une égalité car tu compares une valeur numérique avec du texte. La cellule contient "10" le chiffre tandis que le combobox contient 2 caractères formées de 1 et 0 qui donnent "10" mais la signification dans les 2 cas est clairement différente pour excel.
Pour faire face à cette situation, différentes alternatives :
A ) Utilisation des fonctions de conversion : Cdbl(), Clng() ...et plusieurs autres que tu peux consulter si tu fais une recherche dans l'aide sous le mot "conversion" ou "fonctions de conversion". Ces fonctions ont la capacité de transformer l'entrée Texte "10" en donnée numérique. La fonction que tu devras utiliser dépend du type de données que contient ton combobox. L'aide d'excel sur le sujet est très précis.
If ActiveCell = cdbl(Combo1.Value ) ou If ActiveCell = clng(Combo1.Value)
IMPORTANT : Pour pouvoir utiliser les fonctions de conversion, si tes données numériques utilisent un séparateur décimale, ce doit être celui définit dans le panneau de configuration de Windows sinon cela va planter !
Une façon simple, si tes données dans ton combobox contient des données de type "Entier" ou "Double" avec le point comme séparateur décimale est d'utilisé ceci :
If ActiveCell = val(Combo1.Value) La fonction Val() ne fonctionne qu'avec le point comme séparateur décimale.
Et si les 2 contrôles contiennent du texte, attention à la casse ...elle doit être identique !
Salutatioins!
"Paul-François" a écrit dans le message de news: TL9Me.22036$ Bonsoir,
Pourquoi lorsque je demande une vérification de la cellule active égale au combo1 elle ne se fait pas ?
Pourtant les 2 valeurs sont égales ?
J'ai essayé avec Me.Combo1.Value sans succès ! Où est mon erreur ?
Bas: If ActiveCell = Combo1.Value Then ActiveCell.Offset(0, 5).Copy Worksheets("Feuil2").Activate Range("A2").Activate Bas1: If ActiveCell = "" Then ActiveSheet.Paste Else ActiveCell.Offset(7, 0).Activate GoTo Bas1 End If Else ActiveCell.Offset(1, 0).Activate GoTo Bas End If
Merci
Paul-François
Bonsoir Paul-François,
Avec un combobox et un textbox, il faut se rappeler que même si ces contrôles affichent une valeur numérique, ces derniers
retournent une donnée TEXTE.
Supposons que tu as la valeur 10 dans une cellule et 10 comme valeur affichée dans un combobox.
si tu fais la comparaison suivante : If ActiveCell = Combo1.Value Then , tu n'obtiendras pas une égalité car tu compares une
valeur numérique avec du texte. La cellule contient "10" le chiffre tandis que le combobox contient 2 caractères formées de 1 et 0
qui donnent "10" mais la signification dans les 2 cas est clairement différente pour excel.
Pour faire face à cette situation, différentes alternatives :
A ) Utilisation des fonctions de conversion : Cdbl(), Clng() ...et plusieurs autres que tu peux consulter si tu fais une recherche
dans l'aide sous le mot "conversion" ou "fonctions de conversion". Ces fonctions ont la capacité de transformer l'entrée Texte "10"
en donnée numérique. La fonction que tu devras utiliser dépend du type de données que contient ton combobox. L'aide d'excel sur le
sujet est très précis.
If ActiveCell = cdbl(Combo1.Value ) ou If ActiveCell = clng(Combo1.Value)
IMPORTANT : Pour pouvoir utiliser les fonctions de conversion, si tes données numériques utilisent un séparateur décimale, ce doit
être celui définit dans le panneau de configuration de Windows sinon cela va planter !
Une façon simple, si tes données dans ton combobox contient des données de type "Entier" ou "Double" avec le point comme séparateur
décimale est d'utilisé ceci :
If ActiveCell = val(Combo1.Value)
La fonction Val() ne fonctionne qu'avec le point comme séparateur décimale.
Et si les 2 contrôles contiennent du texte, attention à la casse ...elle doit être identique !
Salutatioins!
"Paul-François" <pf_labrecque@nospam.videotron.ca> a écrit dans le message de news: TL9Me.22036$sX3.723466@wagner.videotron.net...
Bonsoir,
Pourquoi lorsque je demande une vérification de la cellule active égale au
combo1 elle ne se fait pas ?
Pourtant les 2 valeurs sont égales ?
J'ai essayé avec Me.Combo1.Value sans succès ! Où est mon erreur ?
Bas:
If ActiveCell = Combo1.Value Then
ActiveCell.Offset(0, 5).Copy
Worksheets("Feuil2").Activate
Range("A2").Activate
Bas1:
If ActiveCell = "" Then
ActiveSheet.Paste
Else
ActiveCell.Offset(7, 0).Activate
GoTo Bas1
End If
Else
ActiveCell.Offset(1, 0).Activate
GoTo Bas
End If
Avec un combobox et un textbox, il faut se rappeler que même si ces contrôles affichent une valeur numérique, ces derniers retournent une donnée TEXTE.
Supposons que tu as la valeur 10 dans une cellule et 10 comme valeur affichée dans un combobox. si tu fais la comparaison suivante : If ActiveCell = Combo1.Value Then , tu n'obtiendras pas une égalité car tu compares une valeur numérique avec du texte. La cellule contient "10" le chiffre tandis que le combobox contient 2 caractères formées de 1 et 0 qui donnent "10" mais la signification dans les 2 cas est clairement différente pour excel.
Pour faire face à cette situation, différentes alternatives :
A ) Utilisation des fonctions de conversion : Cdbl(), Clng() ...et plusieurs autres que tu peux consulter si tu fais une recherche dans l'aide sous le mot "conversion" ou "fonctions de conversion". Ces fonctions ont la capacité de transformer l'entrée Texte "10" en donnée numérique. La fonction que tu devras utiliser dépend du type de données que contient ton combobox. L'aide d'excel sur le sujet est très précis.
If ActiveCell = cdbl(Combo1.Value ) ou If ActiveCell = clng(Combo1.Value)
IMPORTANT : Pour pouvoir utiliser les fonctions de conversion, si tes données numériques utilisent un séparateur décimale, ce doit être celui définit dans le panneau de configuration de Windows sinon cela va planter !
Une façon simple, si tes données dans ton combobox contient des données de type "Entier" ou "Double" avec le point comme séparateur décimale est d'utilisé ceci :
If ActiveCell = val(Combo1.Value) La fonction Val() ne fonctionne qu'avec le point comme séparateur décimale.
Et si les 2 contrôles contiennent du texte, attention à la casse ...elle doit être identique !
Salutatioins!
"Paul-François" a écrit dans le message de news: TL9Me.22036$ Bonsoir,
Pourquoi lorsque je demande une vérification de la cellule active égale au combo1 elle ne se fait pas ?
Pourtant les 2 valeurs sont égales ?
J'ai essayé avec Me.Combo1.Value sans succès ! Où est mon erreur ?
Bas: If ActiveCell = Combo1.Value Then ActiveCell.Offset(0, 5).Copy Worksheets("Feuil2").Activate Range("A2").Activate Bas1: If ActiveCell = "" Then ActiveSheet.Paste Else ActiveCell.Offset(7, 0).Activate GoTo Bas1 End If Else ActiveCell.Offset(1, 0).Activate GoTo Bas End If
Merci
Paul-François
Paul-François
Merci
Problème corrigé :
If ActiveCell.Value = CLng(CboPièce.Value) Then
"michdenis" a écrit dans le message de news:
Bonsoir Paul-François,
Avec un combobox et un textbox, il faut se rappeler que même si ces contrôles affichent une valeur numérique, ces derniers retournent une donnée TEXTE.
Supposons que tu as la valeur 10 dans une cellule et 10 comme valeur affichée dans un combobox. si tu fais la comparaison suivante : If ActiveCell = Combo1.Value Then , tu n'obtiendras pas une égalité car tu compares une valeur numérique avec du texte. La cellule contient "10" le chiffre tandis que le combobox contient 2 caractères formées de 1 et 0 qui donnent "10" mais la signification dans les 2 cas est clairement différente pour excel.
Pour faire face à cette situation, différentes alternatives :
A ) Utilisation des fonctions de conversion : Cdbl(), Clng() ...et plusieurs autres que tu peux consulter si tu fais une recherche dans l'aide sous le mot "conversion" ou "fonctions de conversion". Ces fonctions ont la capacité de transformer l'entrée Texte "10" en donnée numérique. La fonction que tu devras utiliser dépend du type de données que contient ton combobox. L'aide d'excel sur le sujet est très précis.
If ActiveCell = cdbl(Combo1.Value ) ou If ActiveCell = clng(Combo1.Value)
IMPORTANT : Pour pouvoir utiliser les fonctions de conversion, si tes données numériques utilisent un séparateur décimale, ce doit être celui définit dans le panneau de configuration de Windows sinon cela va planter !
Une façon simple, si tes données dans ton combobox contient des données de type "Entier" ou "Double" avec le point comme séparateur décimale est d'utilisé ceci :
If ActiveCell = val(Combo1.Value) La fonction Val() ne fonctionne qu'avec le point comme séparateur décimale.
Et si les 2 contrôles contiennent du texte, attention à la casse ...elle doit être identique !
Salutatioins!
"Paul-François" a écrit dans le message de news: TL9Me.22036$ Bonsoir,
Pourquoi lorsque je demande une vérification de la cellule active égale au combo1 elle ne se fait pas ?
Pourtant les 2 valeurs sont égales ?
J'ai essayé avec Me.Combo1.Value sans succès ! Où est mon erreur ?
Bas: If ActiveCell = Combo1.Value Then ActiveCell.Offset(0, 5).Copy Worksheets("Feuil2").Activate Range("A2").Activate Bas1: If ActiveCell = "" Then ActiveSheet.Paste Else ActiveCell.Offset(7, 0).Activate GoTo Bas1 End If Else ActiveCell.Offset(1, 0).Activate GoTo Bas End If
Merci
Paul-François
Merci
Problème corrigé :
If ActiveCell.Value = CLng(CboPièce.Value) Then
"michdenis" <michdenis@hotmail.com> a écrit dans le message de news:
e3FvtwfoFHA.3120@TK2MSFTNGP09.phx.gbl...
Bonsoir Paul-François,
Avec un combobox et un textbox, il faut se rappeler que même si ces
contrôles affichent une valeur numérique, ces derniers
retournent une donnée TEXTE.
Supposons que tu as la valeur 10 dans une cellule et 10 comme valeur
affichée dans un combobox.
si tu fais la comparaison suivante : If ActiveCell = Combo1.Value Then ,
tu n'obtiendras pas une égalité car tu compares une
valeur numérique avec du texte. La cellule contient "10" le chiffre tandis
que le combobox contient 2 caractères formées de 1 et 0
qui donnent "10" mais la signification dans les 2 cas est clairement
différente pour excel.
Pour faire face à cette situation, différentes alternatives :
A ) Utilisation des fonctions de conversion : Cdbl(), Clng() ...et
plusieurs autres que tu peux consulter si tu fais une recherche
dans l'aide sous le mot "conversion" ou "fonctions de conversion". Ces
fonctions ont la capacité de transformer l'entrée Texte "10"
en donnée numérique. La fonction que tu devras utiliser dépend du type de
données que contient ton combobox. L'aide d'excel sur le
sujet est très précis.
If ActiveCell = cdbl(Combo1.Value ) ou If ActiveCell = clng(Combo1.Value)
IMPORTANT : Pour pouvoir utiliser les fonctions de conversion, si tes
données numériques utilisent un séparateur décimale, ce doit
être celui définit dans le panneau de configuration de Windows sinon cela
va planter !
Une façon simple, si tes données dans ton combobox contient des données de
type "Entier" ou "Double" avec le point comme séparateur
décimale est d'utilisé ceci :
If ActiveCell = val(Combo1.Value)
La fonction Val() ne fonctionne qu'avec le point comme séparateur
décimale.
Et si les 2 contrôles contiennent du texte, attention à la casse ...elle
doit être identique !
Salutatioins!
"Paul-François" <pf_labrecque@nospam.videotron.ca> a écrit dans le message
de news: TL9Me.22036$sX3.723466@wagner.videotron.net...
Bonsoir,
Pourquoi lorsque je demande une vérification de la cellule active égale au
combo1 elle ne se fait pas ?
Pourtant les 2 valeurs sont égales ?
J'ai essayé avec Me.Combo1.Value sans succès ! Où est mon erreur ?
Bas:
If ActiveCell = Combo1.Value Then
ActiveCell.Offset(0, 5).Copy
Worksheets("Feuil2").Activate
Range("A2").Activate
Bas1:
If ActiveCell = "" Then
ActiveSheet.Paste
Else
ActiveCell.Offset(7, 0).Activate
GoTo Bas1
End If
Else
ActiveCell.Offset(1, 0).Activate
GoTo Bas
End If
Avec un combobox et un textbox, il faut se rappeler que même si ces contrôles affichent une valeur numérique, ces derniers retournent une donnée TEXTE.
Supposons que tu as la valeur 10 dans une cellule et 10 comme valeur affichée dans un combobox. si tu fais la comparaison suivante : If ActiveCell = Combo1.Value Then , tu n'obtiendras pas une égalité car tu compares une valeur numérique avec du texte. La cellule contient "10" le chiffre tandis que le combobox contient 2 caractères formées de 1 et 0 qui donnent "10" mais la signification dans les 2 cas est clairement différente pour excel.
Pour faire face à cette situation, différentes alternatives :
A ) Utilisation des fonctions de conversion : Cdbl(), Clng() ...et plusieurs autres que tu peux consulter si tu fais une recherche dans l'aide sous le mot "conversion" ou "fonctions de conversion". Ces fonctions ont la capacité de transformer l'entrée Texte "10" en donnée numérique. La fonction que tu devras utiliser dépend du type de données que contient ton combobox. L'aide d'excel sur le sujet est très précis.
If ActiveCell = cdbl(Combo1.Value ) ou If ActiveCell = clng(Combo1.Value)
IMPORTANT : Pour pouvoir utiliser les fonctions de conversion, si tes données numériques utilisent un séparateur décimale, ce doit être celui définit dans le panneau de configuration de Windows sinon cela va planter !
Une façon simple, si tes données dans ton combobox contient des données de type "Entier" ou "Double" avec le point comme séparateur décimale est d'utilisé ceci :
If ActiveCell = val(Combo1.Value) La fonction Val() ne fonctionne qu'avec le point comme séparateur décimale.
Et si les 2 contrôles contiennent du texte, attention à la casse ...elle doit être identique !
Salutatioins!
"Paul-François" a écrit dans le message de news: TL9Me.22036$ Bonsoir,
Pourquoi lorsque je demande une vérification de la cellule active égale au combo1 elle ne se fait pas ?
Pourtant les 2 valeurs sont égales ?
J'ai essayé avec Me.Combo1.Value sans succès ! Où est mon erreur ?
Bas: If ActiveCell = Combo1.Value Then ActiveCell.Offset(0, 5).Copy Worksheets("Feuil2").Activate Range("A2").Activate Bas1: If ActiveCell = "" Then ActiveSheet.Paste Else ActiveCell.Offset(7, 0).Activate GoTo Bas1 End If Else ActiveCell.Offset(1, 0).Activate GoTo Bas End If