Recherche de l'aide pour excel 2007 VBA

Résolu/Fermé
Laura - 18 mars 2009 à 22:23
 Laura - 19 mars 2009 à 13:41
Bonjour,
Très très urgent!! problème de dernière minute.

Bonsoir, j'ai créée un programme de gestion des stocks. j'ai mis en place une mise en forme conditionnelle qui déclenche une alarme lorsque la date de péremption d'un produit arrive.
J'ai fais un bouton avec VBA qui ouvre un userform. Les infos saisi dans l'userform sont redirigé dans un tableau excel.
Lorsque je saisie la date directement dans le tableau excel, la mise en forme conditonnelle fonctionne.
Lorsque je saisie la date dans l'userform et qu'elle est transférée dans la tableau excel par VBA, la mise en forme conditionnelle ne fonctionne pas.

Je pense que c'est parceque VBA traite une valeur et que le tableau excel traite une date.
J'espère que quelqu'un pourra m'aide à répondre à ce problème, ce programme est à rendre vendredi matin.

Je remercie mon sauveur d'avance!
Me contacter pour plus d'informations.
Laura
A voir également:

10 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
18 mars 2009 à 22:32
Salut,

Lorsque je saisie la date directement dans le tableau excel, la mise en forme conditonnelle fonctionne.
En ce cas on a les étapes
- sélection de la cellule
- écriture dan la cellule
- tu appuies sur ENTRER pour valider et la mise en forme conditionnelle est verifiée

Lorsque je saisie la date dans l'userform et qu'elle est transférée dans la tableau excel par VBA, la mise en forme conditionnelle ne fonctionne pas.

En ce cas on a les étapes
- tu écris dans userform
- le résultat est transmis dans la cellule
Il n'y a aucun événement qui peut enclencher la mise en forme conditionnelle


Deux pistes peut être :

1. Tu sélectionnes la cellule avant d'écrire et ensuite avec sendkeys tu simules l'appui sur la touche ENTRER
2. La valeur saisie dans userform tu la stocke dans une variable globale et tu l'écrit dans la cellue en utilisant la procédure événementielle
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
0
OK c'est très gentil d'avoir répondu mais je ne suis pas yper calé en informatique!
qu'est ce que veut dire : " avec sendkeys tu simules l'appui sur la touche ENTRER"
et la deuxième solution je ne comprend pas non plus...mettre le code dans VBA, je sais faire mais je ne comprend pas le reste.

je ne sais pas si vous allez pouvoir m'expliquer, ou me guider mais en tout cas merci quand même.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
18 mars 2009 à 23:11
Salut,

Teste ce fichier https://www.cjoint.com/?duxlzP0LH2 (il fonctionne sur Excel 2002)
0
j'ai tenté de mettre les mêmes codes dans mon ficher mais ça ne fonctionne toujours pas...
Merci.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
18 mars 2009 à 23:42
Re,

Tu peux envoyer ton fichier pour voir.
0
je ne sais pas si tu arriveras à l'ouvrir...

file:///C:/Users/Laura/Documents/licence%20pro%20admr/projet%20gestion%20de%20stock/gestion%20des%20stocks/Programme%20de%20gestion%20des%20stocks/Nouveau%20produit.htm

je l'ai enregistré en format web sous 2007
0
eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024 7 213
19 mars 2009 à 09:47
Bonjour,

c'est clair qu'il n'arrivera pas à l'ouvrir, c'est le chemin sur ton disque dur :-)
Dépose le fichier sur cijoint.fr et colle ici le lien fourni.
eric
0
Laura > eriiic Messages postés 24570 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 23 avril 2024
19 mars 2009 à 12:42
ok, je débute alors c'est pas toujours simple...

http://www.cijoint.fr/cjlink.php?file=cj200903/cijMZMjEd6.xls
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
19 mars 2009 à 12:52
Salut,

C'est quoi la cellule avec mise en forme conditionnelle?
0
c'est toutes les cellules de la ligne rouge DLC DLUO

j'avais fais une nouvelle mise en forme conditionnelle appliqué seulement aux cellules qui contiennent une valeur inférieure ou égale à aujourd'hui+(nombre de jour indiqué dans une autre case)
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
19 mars 2009 à 13:10
RE,

Ben, chez moi, la mise en forme fonctionne (Excel 2003) depuis userform

Au lieu d'écrire N fois
If Not IsEmpty(Feuil1.Cells(9, n).Value) Then n = n + 1
Tu peux faire une boucle
Do While Not IsEmpty(Feuil1.Cells(9, n).Value)
 n = n + 1
Loop

0
lol oui j'ai fais pas mal de bricolage! je n'ai reçu aucune formation de VBA et j'ai du me débrouiller seule pour tout faire donc il est évident que ce programme n'est absolument pas parfait.

par contre pour mon souci d'alarme on m'a donné une formule que j'ai réussi à adapter mais elle ne fonctionne que pour une case, je voudrais qu'elle fonctionne sur toute une ligne.

Sheets("feuil1").Range("c11").Value = DateValue(UserForm1.dlcdluo.Value)

il faudrait remplacer Range("c11") pour que cela signifie ligne 11...
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
19 mars 2009 à 13:33
Re,

En fait le numéro de colonne chage, la ligne restant la même.
Le numéro de colonne est donné par n

Donc tu peux écrire
Sheets("feuil1").cells(11,n).Value = DateValue(UserForm1.dlcdluo.Value) 

A chaque nouveau valeur ajoutée, la boucle va incrementer n.
0
Alors là c'est absolument génialissime...ça marche!

Merci beaucoup beaucoup beaucoup!!!!!! Pour Le temps que tu m'as accordé et ta grande patience.

ahhh je suis super contente et soulagée!
0