Précédent   Forum des professionnels en informatique > Logiciels > Microsoft Office > Excel > Macros et VBA Excel
Macros et VBA Excel Vos questions relatives aux macros Excel, à l'utilisation de VBA et à l'automatisation de vos classeurs Excel.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 20/12/2011, 10h00   #1
Membre du Club
 
Avatar de Kaera
 
Femme
Étudiant
Inscription : novembre 2011
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Santé

Informations forums :
Inscription : novembre 2011
Messages : 102
Points : 69
Points : 69
Par défaut Erreur sur récupération valeur TextBox

Bonjour à tous !

J'ai un tableau avec des données en ligne. A gauche du tableau j'ai deux colonnes contenant des valeurs de référence.
Pour chaque ligne, les cellules dont la valeur sera en dehors des valeurs de référence seront colorées.

Il y a beaucoup de lignes et l'utilisateur ne renseignera les valeurs de référence que pour certaines lignes.
J'ai donc créé une textbox dans laquelle l'utilisateur saisit le numéro de la ligne qui l'intéresse.
Ma variable f récupère la valeur saisie dans le textbox (j'ai restreint la saisie dans le textbox aux chiffres/nombres entiers).

Tout ça me paraît correct mais j'ai une "erreur définir par l'application ou par l'objet" sur la ligne

J'ai testé ensuite avec f=TextBox1.Value, j'ai eu une erreur "Objet requis" sur cette même ligne.

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
sub couleur()
 
Dim i As Long, j As Long 'numéro de ligne et de colonne pour le tab1
Dim f As Integer
Dim Dercol As Integer
 
Sheets("SumUp").Activate
Dercol = Sheets("SumUp").Range("IV5").End(xlToLeft).Column
 
    f = TextBox1
    For j = Dercol - 1 To 5 Step -1
            If Not (Cells(f, j).Value) Like ("-") Then 'Pour ne pas tenir compte des cellules vides (qui contiennent un tiret)
                If (Cells(f, j).Value) < (Cells(f, 1)) Then Cells(f, j).Interior.Color = 65535 '<MIN de ref : jaune
                If (Cells(f, j).Value) > (Cells(f, 2)) Then Cells(f, j).Interior.Color = 255 '>MAX de ref : rouge
            End If
    Next j
 
End sub
Auriez-vous une idée de ce qui coince ?

Merci d'avance !

Kaera*
__________________
.
Si la réponse d'un membre vous satisfait, pensez à voter en cliquant sur le pouce levé !
***
Un vote négatif sans justification, c'est dénué d'intérêt !
Accompagnez-le d'un message explicatif, cela évitera au membre visé de reproduire la même erreur. Bien plus efficace !

...An ka mandéw, mèt taw ek tan mwen pou sa fè an lô...
Kaera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 10h19   #2
Membre du Club
 
Homme
Inscription : janvier 2010
Messages : 176
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France

Informations professionnelles :
Secteur : Industrie

Informations forums :
Inscription : janvier 2010
Messages : 176
Points : 67
Points : 67
Bonjour,

Sur quelle ligne est ton erreur ? Si j'ai bien compris, c'est au niveau de Dans quelle partie de ton projet as-tu rédigé ce code ?
d0n32 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 10h28   #3
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Si ce code est sur la feuille qui contient TextBox1, c'est sans doute que le nom de la TextBox n'est pas exactement celui-là.
S'il est dans un module, il faudra faire
Code :
Worksheets("FeuilleAvecTextBox").OleObjects("TextBox1").Object.Value
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 10h50   #4
Membre du Club
 
Avatar de Kaera
 
Femme
Étudiant
Inscription : novembre 2011
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Santé

Informations forums :
Inscription : novembre 2011
Messages : 102
Points : 69
Points : 69
Salut d0n32, c'est placé dans un module.

Salut ZebreLoup, j'avais déjà vérifié plusieurs fois, c'est bien le bon nom de TextBox.

(Merci à vous deux pour votre rapidité)

Petite précision non négligeable :
Les valeurs de référence et les valeurs du le tableau sont toutes au format heure ("h:mm:ss;@").
J'ai saisi les valeurs de référence et étrangement, le surlignage fonctionne sur certaines lignes et pas sur d'autres.
NB: Pour mes tests, j'ai mis des valeurs de référence de telle sorte qu'au moins deux cellules du tableau soient en dehors, donc colorées.
J'ai varié mes valeurs de réf. mais rien n'y fait, il y a toujours au moins une ligne qui "plante" (aucune erreur n'est affichée, le code ne plante pas).
Par ailleurs, les lignes qui "plantent" ne sont pas toujours les mêmes; il semblerait que ce soit aléatoire.

En somme, le code ne génère plus d'erreurs (avant de voir vos deux messages, j'ai modifier ma variable f comme ceci f = CDbl(UserForm3.TextBox1.Value) ) mais la macro s'applique "au petit bonheur la chance" !

Merci d'avance pour votre aide.

Kaera*
__________________
.
Si la réponse d'un membre vous satisfait, pensez à voter en cliquant sur le pouce levé !
***
Un vote négatif sans justification, c'est dénué d'intérêt !
Accompagnez-le d'un message explicatif, cela évitera au membre visé de reproduire la même erreur. Bien plus efficace !

...An ka mandéw, mèt taw ek tan mwen pou sa fè an lô...
Kaera est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/12/2011, 10h59   #5
Membre Expert
 
Avatar de ZebreLoup
 
Homme Sebastien L
Ingénieur Financier
Inscription : mars 2010
Messages : 880
Détails du profil
Informations personnelles :
Nom : Homme Sebastien L
Âge : 33
Localisation : France, Val de Marne (Île de France)

Informations professionnelles :
Activité : Ingénieur Financier
Secteur : Finance

Informations forums :
Inscription : mars 2010
Messages : 880
Points : 1 867
Points : 1 867
Je crois que d0n32 et moi pensions que ton textBox était sur ta feuille, pas dans un userForm.

Pour ton autre souci - je ne suis pas sûr d'avoir bien compris - essaie en mettant .Value aussi pour tes cellules de référence.
ZebreLoup est déconnecté   Envoyer un message privé Réponse avec citation 20
Vieux 20/12/2011, 11h36   #6
Membre du Club
 
Avatar de Kaera
 
Femme
Étudiant
Inscription : novembre 2011
Messages : 102
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 22
Localisation : France

Informations professionnelles :
Activité : Étudiant
Secteur : Santé

Informations forums :
Inscription : novembre 2011
Messages : 102
Points : 69
Points : 69
Ah pardon, je ne l'avais pas précisé.

J'ai mis .Value aux valeurs de réf., le problème est réglé.
Merci ZèbreLoup, merci d0n32 !

Kaera*
__________________
.
Si la réponse d'un membre vous satisfait, pensez à voter en cliquant sur le pouce levé !
***
Un vote négatif sans justification, c'est dénué d'intérêt !
Accompagnez-le d'un message explicatif, cela évitera au membre visé de reproduire la même erreur. Bien plus efficace !

...An ka mandéw, mèt taw ek tan mwen pou sa fè an lô...
Kaera est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 20h27.


 
 
 
 
Partenaires

Hébergement Web