Pb Excell / VBA (erreur sur Range.Value)
Fermé
ashrem
Messages postés
32
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
25 avril 2011
-
27 janv. 2010 à 02:26
ashrem Messages postés 32 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 25 avril 2011 - 27 janv. 2010 à 15:37
ashrem Messages postés 32 Date d'inscription dimanche 2 décembre 2007 Statut Membre Dernière intervention 25 avril 2011 - 27 janv. 2010 à 15:37
A voir également:
- Vba range.value
- Mkdir vba ✓ - Forum VB / VBA
- Vba récupérer valeur cellule ✓ - Forum VB / VBA
- Excel compter cellule couleur sans vba - Guide
- Vba range avec variable ✓ - Forum VB / VBA
- Autofill vba ✓ - Forum Excel
8 réponses
garion28
Messages postés
1545
Date d'inscription
mardi 16 juin 2009
Statut
Membre
Dernière intervention
3 avril 2011
406
27 janv. 2010 à 10:20
27 janv. 2010 à 10:20
je ne comprend pas trop pourquoi tu utilise les cellules dans ton code alors que ton problème se trouve sur les combobox ?
sur l'évenement change du combobox1 (ou celle que tu veu) ou bien sur l'évenement change du worksheet:
if combobox1.value="ta valeur" then
combobox2.hide=true
else combobox2.hide=false
end if
sur l'évenement change du combobox1 (ou celle que tu veu) ou bien sur l'évenement change du worksheet:
if combobox1.value="ta valeur" then
combobox2.hide=true
else combobox2.hide=false
end if
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
27 janv. 2010 à 10:42
27 janv. 2010 à 10:42
Bonjour,
1- Quel est exactement le message d'erreur?
2- Qu'elle version d'Excel utilise tu?
Ton code fonctionne chez moi (Excel 2003)
1- Quel est exactement le message d'erreur?
2- Qu'elle version d'Excel utilise tu?
Ton code fonctionne chez moi (Excel 2003)
ashrem
Messages postés
32
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
25 avril 2011
27 janv. 2010 à 11:04
27 janv. 2010 à 11:04
En fait je n'utilise pas une combobox mais une liste prédéfinie (+ simple a mettre en œuvre à priori). cf page web: http://sba.microsoft.com/apnews/ringstrom.ExcelListManage.asp
Pour la version c'est du 2007
Le code passe 9 fois sur 10 chez moi aussi et je ne l'ai pas remarqué tout de suite. L'erreur se produit uniquement quand je change ma sélection plusieurs fois de suite dans ma liste prédéfinie: Range("C26")
Fenêtre d'erreur Visual Basic:
Erreur d'exécution : '2147417848 580010108)':
La méthode 'value' de l'objet 'Range' a échoué
Pour la version c'est du 2007
Le code passe 9 fois sur 10 chez moi aussi et je ne l'ai pas remarqué tout de suite. L'erreur se produit uniquement quand je change ma sélection plusieurs fois de suite dans ma liste prédéfinie: Range("C26")
Fenêtre d'erreur Visual Basic:
Erreur d'exécution : '2147417848 580010108)':
La méthode 'value' de l'objet 'Range' a échoué
ashrem
Messages postés
32
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
25 avril 2011
27 janv. 2010 à 14:10
27 janv. 2010 à 14:10
J'ai essayé en modifiant le code ainsi mais ça me produit toujours le même type d'erreurs:
OU ENCORE COMME CELA:
Et j'ai toujours cette même erreur, même si je n'utilise plus:
Le problème vient de la ligne :
Du coup j'ai passé le format de cette cellule de "Standard" à "Texte" (click droit sur la cellule) et ça a l'air de fonctionner.
La prochaine fois j'essaie les combobox ;)
Private Sub Worksheet_Change(ByVal Target As Range) If Worksheets("Creation").Cells(26, 3).Value = "Forge World" Then Range("C28").Activate Range("C28").Interior.ColorIndex = 2 Else Range("C28").Interior.ColorIndex = Null Range("C28").Value = "" End If End Sub
OU ENCORE COMME CELA:
Private Sub Worksheet_Change(ByVal Target As Range) If Worksheets("Creation").Cells(26, 3).Value = "Forge World" Then Range("C28").Activate Range("C28").Interior.ColorIndex = 2 Else Range("C28").Interior.ColorIndex = Null Worksheets("Creation").Cells(28, 3).Value = "" End If End Sub
Et j'ai toujours cette même erreur, même si je n'utilise plus:
Range("C26").value
Le problème vient de la ligne :
Worksheets("Creation").Cells(28, 3).Value = ""puisque quand je la met en commentaire ou que je remplace le "" par un "." ça marche.
Du coup j'ai passé le format de cette cellule de "Standard" à "Texte" (click droit sur la cellule) et ça a l'air de fonctionner.
La prochaine fois j'essaie les combobox ;)
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
27 janv. 2010 à 14:24
27 janv. 2010 à 14:24
Bonjour,
Voici ce que j'avais fait pour éviter l'alerte lors d'un changement dans la validation "mère"
Voici ce que j'avais fait pour éviter l'alerte lors d'un changement dans la validation "mère"
Private Sub Worksheet_Activate() Union(Range("deb"), Range("fin")).ClearContents End Sub Private Sub Worksheet_Change(ByVal Target As Range) Static flag As Boolean ' "deb" liste validation "mère" ; "fin" liste validation "fille" If Target.Address <> Range("deb").Address Then: Exit Sub If IsEmpty(Range("fin")) Then Application.DisplayAlerts = False End If If flag Then flag = False Exit Sub End If flag = True Range("fin").ClearContents Application.DisplayAlerts = True End Sub
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 752
27 janv. 2010 à 14:25
27 janv. 2010 à 14:25
Je ne sais pas si cela va t'aider (le code fonctionne bien chez moi quelque soit la syntaxe cells, range etc...) essaye simplement ceci :
ps : quand on place du code sur un forum, il est de bon ton de signaler ce code comme tel en le placant sous les balises spécifiques. Tu trouveras ces balises, sur CCM, à droite du bouton souligné : conserver la mise en forme du texte sélectionné...
Private Sub Worksheet_Change(ByVal Target As Range) If Range("C26").Value = "Forge World" Then Range("C28").Activate Range("C28").Interior.ColorIndex = 2 Else Range("C28").Interior.ColorIndex = Null Worksheets("Creation").Cells(28, 3) = "" End If End Sub
ps : quand on place du code sur un forum, il est de bon ton de signaler ce code comme tel en le placant sous les balises spécifiques. Tu trouveras ces balises, sur CCM, à droite du bouton souligné : conserver la mise en forme du texte sélectionné...
ashrem
Messages postés
32
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
25 avril 2011
27 janv. 2010 à 14:48
27 janv. 2010 à 14:48
Merci à tous, je pense que le problème venait donc du fait que je voulais attribuer une chaine de caractères vide à un range créé sur une case ayant un format standard.
J'ai en effet passé le format de cette cellule de "Standard" à "Texte" (click droit sur la cellule) et ça a l'air maintenant de fonctionner.
J'avoue que je ne comprends pas tout puisque qu'on peut attribuer un chaine vide à une case normale sans problème, mais les "range" modifient sans doute le truc ...
Je fais encore quelques tests avant de mettre le sujet en "Résolu".
Merci encore.
J'ai en effet passé le format de cette cellule de "Standard" à "Texte" (click droit sur la cellule) et ça a l'air maintenant de fonctionner.
J'avoue que je ne comprends pas tout puisque qu'on peut attribuer un chaine vide à une case normale sans problème, mais les "range" modifient sans doute le truc ...
Je fais encore quelques tests avant de mettre le sujet en "Résolu".
Merci encore.
ashrem
Messages postés
32
Date d'inscription
dimanche 2 décembre 2007
Statut
Membre
Dernière intervention
25 avril 2011
27 janv. 2010 à 15:37
27 janv. 2010 à 15:37
Bon en fait par rapport à la liste ça ne provoque plus d'erreur au niveau de la sélection.
Par contre vu que je veux récupérer les résultats, là ça plante dès que je fais un choix autre que Forge World.
Même erreur que précédement et de plus le debogage m'amène à cette fameuse ligne de la macro:
Je veux donc mettre en place une structure conditionnelle sur une cellule de ma feuille Excel qui donne différents résultats suivant les choix fait avec les deux listes prédéfinies (Range) :
De même quand j'ai C26 => Forge World et C28 => WS et que je reviens sur C26 pour modifier mon choix, C28 disparait (normal) mais par contre j'ai systématiquement un plantage. :(
Par contre vu que je veux récupérer les résultats, là ça plante dès que je fais un choix autre que Forge World.
Même erreur que précédement et de plus le debogage m'amène à cette fameuse ligne de la macro:
Worksheets("Creation").Cells(28, 3).Value = ""
Je veux donc mettre en place une structure conditionnelle sur une cellule de ma feuille Excel qui donne différents résultats suivant les choix fait avec les deux listes prédéfinies (Range) :
=SI(EXACT(C26;"Forge World");SI(EXACT(C28;"WS");-2;-5);"")
De même quand j'ai C26 => Forge World et C28 => WS et que je reviens sur C26 pour modifier mon choix, C28 disparait (normal) mais par contre j'ai systématiquement un plantage. :(