Un coup de main pour regler mon probleme.

Résolu/Fermé
Papy Dédé Messages postés 12 Date d'inscription lundi 4 mars 2013 Statut Membre Dernière intervention 29 octobre 2018 - 4 mars 2013 à 14:24
 Papy Dédé - 13 juin 2013 à 17:07
Bonjour,

Je travail sur excel 2000. J'ai un Tableau comportant 11 colonnes.Dans la colonne 8 (Prêt) je tappe 2 par exemple pour deux articles en prêt. a droite de cette colonne donc la colonne 9 (Date) j'inscrit par un bouton la date avec la fonction AUJOURDHUI format JJ/mm/aaaa.
j'aimerais quand je tappe 0 a la place de 2 comme dans l'exemple, je supprime la date en face. sachant que dans la colonne 8(Prêt) mon format est 0;-0;;@ ce qui me permet de ne pas afficher le 0 par rapport aux autre colonnes ou la il doivent etre visible.

Mon dossier comporte 9 feuilles nommées diferament mais identiques.(Catégorie)
Dans chaque feuille, j'ai ces codes là


Private Sub Worksheet_Change(ByVal Target As Range)
If Not Application.Intersect(Target, Range("Prêt")) Is Nothing Then

'Appel de la Macro Condition
condition

End If
MSG = "Désirez vous connaitre le nombre d'articles en stock ?"
reponse = MsgBox(MSG, vbQuestion + vbYesNo, "Wasnaire André")
If reponse = vbYes Then
Calcul
If reponse = vbNo Then GoTo lignefin
lignefin:
End If
End Sub

Sub condition()
Range("Avertissement").Select
For Each cell In Selection 'Pour chaque cellule dans la selection
If cell.Text = "Plus en Stock" Then
cell.Font.ColorIndex = 3
End If
If cell.Text = "En Stock" Then
cell.Font.ColorIndex = 11
End If
If cell.Text = "A Contrôler" Then
cell.Font.ColorIndex = 10
End If
Next
'Range("Prêt").Select
End Sub

Sub Calcul()
D = 2
Z = 0
While Not Sheets("Feuil1").Cells(D, 7).Value = ""
Z = Sheets("Feuil1").Cells(D, 7).Value + Z
D = D + 1
Wend
D = 2
ZZ = 0
While Not Sheets("Feuil1").Cells(D, 4).Value = ""
ZZ = Sheets("Feuil1").Cells(D, 4).Value + ZZ
D = D + 1
Wend
D = 2
ZZZ = 0
While Not Sheets("Feuil1").Cells(D, 8).Value = ""
ZZZ = Sheets("Feuil1").Cells(D, 8).Value + ZZZ
D = D + 1
Wend
MsgBox "Articles prêtés : " & Format(ZZZ, "") & " " & _
" Quantité restante : " & Format(Z, "") & " Articles" & " sur " & _
Format(ZZ, "") & " Articles au total. ", vbInformation, "Wasnaire André"
End Sub



Private Sub Calendar1_Click()
' Met la date sélectionnée dans la cellule active
ActiveCell.Value = Calendar1.Value
' Masque le calendrier
Calendar1.Visible = False
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
If Target.Column = 18 And Target.Row = 1 And Target.Row <= 18 Then
' Si la cellule sélectionnée est dans la plage qu'on veut lier au calendrier,
' on affiche le calendrier
Calendar1.Visible = True
' Place le calendrier à côté de la cellule
Calendar1.Top = ActiveCell.Top
Calendar1.Left = ActiveCell.Left + ActiveCell.Width
Else
' Sinon, on masque le calendrier
Calendar1.Visible = False
End If
End Sub

pouvez-vous m'aider svp.
merci par avance

31 réponses

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
5 mars 2013 à 12:35
Bonjour

Si je comprends bien :
Une date a été affichée en colonne 9
Tu veux en remplaçant le nombre précédemment mis en 8 par un 0 que la date soit supprimée

dans le code avant appel de la macro condition

IF target.value=0 then cells(target.row,9).value="":exit sub

devrait faire ce que tu veux

Cdlmnt
0
Papy Dédé Messages postés 12 Date d'inscription lundi 4 mars 2013 Statut Membre Dernière intervention 29 octobre 2018
5 mars 2013 à 16:06
Merci à via55 c'est parfait, encore merci pour le coup de main.
0
Papy Dédé Messages postés 12 Date d'inscription lundi 4 mars 2013 Statut Membre Dernière intervention 29 octobre 2018
5 mars 2013 à 16:37
E cliquant sur le bouton pour insérer la date dans la cellule de la colonne 9 j'ai mis ce message.
Malgres tout, on peut commettre l'erreur.
y a t'il un autre moyen.

Sub Datejour()
MSG = "Etes-vous sur d'avoir sélectionné la bonne cellule dans la bonne colonne (Date). ?"
reponse = MsgBox(MSG, vbQuestion + vbYesNo, "")
If reponse = vbYes Then GoTo Ligne1
If reponse = vbNo Then GoTo lignefin
Ligne1:
ActiveCell.FormulaR1C1 = "=aujourdhui()"
Exit Sub
lignefin:
Exit Sub
End Sub

Merci d'avance pour ton aide via55
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
5 mars 2013 à 19:00
Pour la date je n'ai pas tout compris ce que tu veux faire
Si on rentre un chiffre en colonne 8 apparement tu veux qu'automatiquement la date d'aujourdhui s'incrive en colonne 9 ? dans ce cas pas besoin de bouton et pas besoin de message de controle la macro devrait automatiquement mettre la date si target.value <>"" et target.value >0

Par contre dans ta macro on affiche le calendrier
If Target.Column = 18 And Target.Row = 1 And Target.Row <= 18 Then
' Si la cellule sélectionnée est dans la plage qu'on veut lier au calendrier,
' on affiche le calendrier
Calendar1.Visible = True
la condition Target.Row<= 18 ne sert à rien puisque avant il y a Target.Row=1 donc le calendrier ne s'affiche que si clic en cellule ligne 1 colonne 18
Est ce pour ce choix de date qu'il peut y avoir erreur ?

En attente des précisions

Cdlmnt
0
Papy Dédé Messages postés 12 Date d'inscription lundi 4 mars 2013 Statut Membre Dernière intervention 29 octobre 2018
5 mars 2013 à 22:31
Désolé,mon explication n'etait pas claire.
le calendrier n'a rien a voir, il sert a entrer une date superieure plus loin dans la feuille, justement pour comparer avec celle du bouton (mise en forme conditionnelle). je pense que je vais le supprimer (il empeche de faire des copier / coller) bug d'excel.
je reviens à mon probleme.
J'utilise un bouton pour entrer les date dans la colonne 9. donc je me place dans une cellule de la colonne 9 et je clic sur le bouton pour entrer la date. mais si par erreur je suis sur une autre cellules d'une autre colonne, je vais entrer cette date au mauvais endroit qui risque d'effacer le contenu de cette cellule d'ou ce message:

Sub Datejour()
MSG = "Etes-vous sur d'avoir sélectionné la bonne cellule dans la bonne colonne (Date). ?"
reponse = MsgBox(MSG, vbQuestion + vbYesNo, "")
If reponse = vbYes Then GoTo Ligne1
If reponse = vbNo Then GoTo lignefin
Ligne1:
ActiveCell.FormulaR1C1 = "=aujourdhui()"
Exit Sub
lignefin:
Exit Sub
End Sub

j'espere que vous me suivez.
je suis un novice en vba
peut on faire mieux que ce message?

encore merci pour votre aide.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
5 mars 2013 à 23:55
Re

je n'arrive pas à comprendre l'utilité du bouton

Ou bien lorsqu'une valeur non nulle est rentrée en colonne 8 la date du jour doit s'inscrire automatiquement en colonne 9 et il suffit de rajouter dans le Private Sub Worksheet_Change(ByVal Target As Range) de la feuille :

If Target.Column = 8 And Target.Value > 0 Then Cells(Target.Row, 9) = Date

Ou bien tu veux cliquer sur la colonne 9 et que la date du jour s'inscrive (et uniquement en colonne 9 et on peut prévoir que ce sot un double cli dans la colonne 9 (et uniquement dans cette colonne ) qui declenche l'inscription de la date avec cette macro à rajouter dans le worksheet de la feuille :

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column <> 9 Then Exit Sub 'Sors de la sub si double clic dans une autre colonne
Target.Value = Date
End Sub

Dans les 2 cas pas besoin d'un message de validation

Est ce que l'une ou l'autre conviendrait ?

Cdlmnt
0

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

Posez votre question
Bonjour via55,

Pour le bouton, il insere la date avec la fonction AUJOURDHUI(). avec la macro que vous avez indiquée, il insere la date systeme.donc ça colle pas pour moi.
je m'explique:
Je vous ai dit que dans la feuille a la cellule (1,18) j'avais le calendrier pour sélectionner une date, cette date sert de date butoir ce qui fait que quand j'arrive a celle-ci la date de ma colonne (9) passe au rouge.
celà est t'il plus claire pour vous ?

Si vous avez une autre solution, se suis preneur.

sinon avec la macro double clic cela me va pour supprimer le bouton a condition que la date est la fonction AUJOURDHUI() et la je ne sais pas faire.
chaque jour elle change pour arriver a la date butoire.

sinon si on garde la date jour(systeme) comment faire lorsque l'on arrive a la date butoire pour changer sa couleur.

Avez-vous compris ce que je souhaite faire?

merci d'avance pour la réponse et désolé de vous prendre du temps avec ça.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
7 mars 2013 à 12:14
Bonjour

Désolé je ne comprends guère mieux

peux tu joindre un exemple de ton fichier allégé et anonymé sur cjoint.com et indiquer le lien fourni dans un prochain message ? ce sera plus simple !

Cdlmnt
0
Je voudrais bien envoyer le fichier mais je ne sais pas faire a part en fichier joint par mail. On vas proceder autrement.

j'explique:
Je prends un tableau de 175 lignes et 8 colonnes.
dans la colonne 1 (Nom) dans la colonne 2 (Prénom) Dans la colonne 4 (caution) dans la colonne 7 (costume) dans la colonne 8 (Date de prêt).

Dans la colonne 7 J'ai sur chaques lignes quand je clic dessus une liste deroulante avec toute une liste de costumes (données, validation).

Procedure 1:
Je clic sur une cellule de la colonne 7 apparait ma zone deroulante et je selectionne le costume. je veux que la date apparaisse dans la colonne 8. Quel est la procedure ?

Maintenant, dans la colonne 4 par exemple j'ai un chiffre 30 (caution) est des que je met 0, je veux effacer le texte de la colonne 7 et la date de la colonne 8. Quel est la prcedure ?

Procedure2:
Ou bien si je supprime le texte de la colonne 7 (Zone deroulante de la cellule), cela efface la date de la colonne 8 et met à 0 la colonne 4. Quel est la prcedure ?

es ce que mon explication est claire pour ce travail?

Maintenant, je voudrais mettre la date en rouge quand le costume n'est pas de retour a temps voulu. exemple 8 jours apres la date incrite.
(dou la date butoire avec le calendrier qui incrit la date dans la cellule 18 de la ligne 1 de la meme feuille)
es ce que comme cela c'est plus explicite?

je vous remerci par avance de votre aide et a bientot de vous lire.
j'espere que cette fois je vais pouvoir m'en sortir.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
7 mars 2013 à 19:18
Bonsoir

Quelle date doit se mettre en rouge ? la date butoir dépassée ou la date de prêt ?
Pour le reste macro à mettre dans le worksheet de la feuille :

Private Sub Worksheet_Change(ByVal Target As Range)

lg = Target.Row
col = Target.Column
don = Target.Value
If col = 4 And don = 0 Then Cells(lg, 7).Value = " ": Cells(lg, 8).Value = " "
If col = 7 And df = 0 Then
If don <> "" Then Cells(lg, 8).Value = Date Else Cells(lg, 8).Value = " ": Cells(lg, 4).Value = " "
End If

End Sub

Cdlmnt
0
Bonjour via55,
ce qui doit se mettre en rouge, c'est la date de prêt quand elle est = ou superieur a la date butoir.
je vais tester ce que tu as envoyé cet apres-midi.

J'espere terminer tout ça lorsque j'aurai la réponse

encore merci
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
8 mars 2013 à 15:26
Bonjour Papy Dédé,

Là encore je ne comprends pas !
la date de prêt ne sera jamais = ou > à la date butoir
Si tu prêtes aujourdhui la date de prêt est 8/3/13 et tu va mettre une date butoir par exemple 15/3/13 donc forcement supérieure
ce ne serait pas plutôt lorsque la date butoir est dépassée (AUJOURDHUI > date butoir) qu'il faut mettre la cellule date de prêt ou la cellule date butoir en rouge pour creer une alarme ?

Pour joindre un exemple de ton fichier tu vas sur le site cjoint.com tu suis les instructions puis tu copies le lien fourni et tu l'indiques ici dans ton prochain message

Cdlmnt
0
Bonjour via55,

j'ai tester, ça vas impec il rete plus que la date(Date prêt) et sans vouloir abuser mettre en couleur bordure, fond et police de la colonne 1 et 2 (Nom,prénom) quand il y a une valeur en colonne 4 (Caution) et qui se supprimera lorse que la valeur 0 apparait dans la colonne 4.

Je viens de recevoir le message pour la date, c'est la date prêt qui doit changer, la date butoir ne se voie pas à l'ecran vue qu'elle est placée dans la colonne(18).
C'est pour ça que quand je mettais avec le bouton la date prêt avec comme macro

ActiveCell.FormulaR1C1 = "=aujourdhui()"
celle-ci change tous les jour et quand elle arrivait a la date butoir, elle passais au rouge via la mise en forme conditionnelle.

Si c'est pas possible ce n'est pas grave. je ferrai sans.

j'aimerais terminer pour dimanche pour montrer à mon Amie, c'est elle qui vas s'en servir.

encore une fois merci pour ta gentillesse et ton service.
papy dédé
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
8 mars 2013 à 16:44
Pour la colonne 1 si le 1er nom est en A2 selectionner la plage A2:A100 (ou plus selon la longueur maximale prévue), puis Format et Mise en forme conditionnelle puis La formule est et rentrer la formule suivante :
=D2>0 puis choisir la bordure, la police etc... avant de valider
Refaire la même opération pour la plage B2:B100 des prénoms

Pour le retard il serait peut être interessant de connaître le nombre de jours de retard
Pour cela rajouter une colonne 10 après la date de prêt et de mettre en I2 mettre la formule :
SI(R2<=AUJOURDHUI();AUJOURDHUI()-R2;"") puis étirer la formule jusqu'au bas de la colonne I
(si chaque date butoir est bien en colonne R)
La formule n'affiche rien tant que la date butoir n'est pas atteinte puis donne le nombre de jours de retard par rapport à la date du jour (0, 1, 2 etc)
Les cellules de cette colonne peuvent être colorées par mise en forme conditionnelle si elles contiennent une valeur en selectionnant la plage et en mettant la formule : =I2<>""
ou si tu veux que ce soit la date de prêt qui soit colorée tu fais la manipulation sur la plage de la colonne H en rentrant exactement la même formule dans la MFC

Bonne suite

Tiens moi au courant

Cdlmnt
0
Bonsoir via55,

J'ai tenté l'envois par cjoint

http://cjoint.com/?3CiqxbyIFDx

quand tu verras le fichier, Ne rigole pas, je suis un amateur. j'ai supprimé pas mal de lignes pour reduire la capacité ( 5 Mo) tout ce que j'ai fait a part ce que tu m'a indiqué, je l'ai fait sur excel 7 Les modules sont en français et je l'ai enregistrer ensuite sur excel 2000 pour arriver a ce travail.
je suis plus que nul en Anglais tu comprends pourquois je n'arrive pas à faire certaines choses
j'espere que tu vas comprendre ce que j'ai fait avec mes menus personnalisés

Bon courage et merci à l'avance

papy dédé
0
Re Via55,

J'espere que tu as reçu le fichier, je viens de tester la condition pour nom et prénom, cela ne fonctione pas.
As-tu testé de ton coté?
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
8 mars 2013 à 17:46
Re

J'ai reçu le fichier
Je dois m'absenter , je regarde dès que possible
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
8 mars 2013 à 18:32
Re re

Voila j'ai regardé mais j'ai un probleme à l'ouverture la page d'accueil s'affiche mais on ne peut rien faire tous les onglets sont masqués et il n'y a pas de fenetre de menu ou de choix

Apparement tu as fait un gros travail, chapeau !

En passant par les macros je suis arrivé à faire afficher la page de prêts
La MFC pour nom et prénom ne peut pas marcher car tu es en References L1C1 et non pas $A$1 Il fait aller dans options et decocher references L1C1 ou choisir la ref $A$1
J'ai testé et ça fonctionne

https://www.cjoint.com/?3CisFJ4l2mF

Bonne suite
0
Re
As-tu essayé avec la macro Auto_Ouvrir en principe, ce devrait-etre Auto_Open mais avec Auto_Open ça ne marche pas et la tu devrais avoir la page démarrage avec les menus perso.(Cours, Optiions, Gestion)
Dans le menu Cours il y a le Menu Excel qui lui affiche tout.


Pour la mise en forme conditionnelle j'avais trouvé, J'etais en L1C1

Je ne peu pas ouvrir le fichier que tu as renvoyé il a une extention XLSM
Enfin puisque tu as le fichier comprends-tu pour la date Prêt...
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
8 mars 2013 à 19:23
Je dois être bouché je ne comprends toujours pas à quoi sert ta date de prêt
C'est une date fixe qdans laquelle s'inscrit automatiquement la date du jour quand on prête le costume , elle ne va pas varier
Par définition la date butoir est postérieure à la date du prêt
Par contre j'ai vu que la date butoir est fixée une fois pour toutes et pour tous les noms de la liste
Prenons un cas concret :
Si je pretes un costume aujourd'hui il s'affiche 8/3/13 supposons une date butoir au 15/4/13
Tu veux que la date de prêt se mette en rouge dès qu'on atteint ou dépasse la date butoir? soit dans l'exemple à partir du 15/4/13 la date de prêt affichée est toujours 8/3/13 mais elle passe en rouge
SI c'est cela il suffit d'une formule dans la MFC de la colonne date prêt: = AUJOURDHUI()>=$R$1

Par contre comme je te disais dans un précédent message je pense qu'il serait interessant de savoir combien de jours il reste avant la date butoir : il suffit d'une cellule avec la formule = AUJOURDHUI()-$R$1 au format nombre qui affichera en positif le nombre de jours restants et en négatif le nombre de jours de dépassement

Cdlmnt
0
Papy Dédé
11 mars 2013 à 10:52
Bonjour via55,

je viens te tenir au courant de ce que j'ai fais concernant la fameuse date.
en fin de compte ce que je voulais, c'etait un genre de compte à rebour.
J'ai trouvé.
Quand on sélectionne la zone déroulante, on inscrivais la date. sauf que c'etait une date fixe. alors pour avoir la date "Aujourdhui" j'ai ajouté X = "=AUJOURDHUI()"
Ce qui donne ceci:
X = "=AUJOURDHUI()"
lg = Target.Row
col = Target.Column
don = Target.Value
If col = 4 And don = 0 Then Cells(lg, 7).Value = " ": Cells(lg, 8).Value = " "
If col = 7 And df = 0 Then
If don <> "" Then Cells(lg, 8).Value = X Else Cells(lg, 8).Value = " ": Cells(lg, 4).Value = 0
End If

donc remplace Date par X et ça marche la date change chaques jour pour arriver à la date butoir.
Quand penses-tu?

Juste une question comme tu es très fort,
J'ai un autre fichier pour gerer les costumes (9 feuilles representant la catégorie) dans une colonne et dans chaques cellule le Nom de ce costume.
Avec inserer commentaire, je met une image. sauf qu'avec plus de 1700 costumes le fichier passe de 682 KO à 88244KO aurait -il un moyen d'aller chercher l'image dans son répertoir "Mes Images"? J'avais cherché il y a un moment sur le forum, mais je n'avais rien trouvé.
Peus-tu me répondre?

Encore une foi, merci pour t'on aide, cela m'a été précieux.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
11 mars 2013 à 12:25
Bonjour Papy Dédé

Je ne comprends pas mieux l'affichage de la date car si la date change on ne connait plus la date à laquelle avait prêté le costume puisque c'est chaque fois la date du jour qui s'affiche mais si ça te convient c'est ce qui compte
(remarque : la formule que je te proposais dans mon dernier message de rajouter dans une colonne à côté donnait bien un compte à rebours ! )

Pour les images ouiil vaut mieux les mettre dans un fichier externe et c'est possible
Va voir ici tu trouveras ton bonheur (et plus encore !) :
http://boisgontierjacques.free.fr/pages_site/lesimages.htm#ImportImages

Bonne suite

Cdlmnt
0
Papy Dédé
11 mars 2013 à 16:07
Merci pour le lien concernant l'import d'une image, mais pour moi c'est de l'hebreu, je ne vois pas lequel conviendrai à mon Fichier.
Si je t'envois mon fichier, peu-tu regarder?
merci d'avance.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
11 mars 2013 à 16:48
OK je regarderai
Envoie ton fichier allegé
A+
0
Papy Dédé
11 mars 2013 à 17:51
OK c'est super, tu m'enleve une sacrée épine du pied

Voic le lien:
http://cjoint.com/?3ClrK3KX9Dy

Comme il est basé sur le même fichier que le précédent, pour l'ouvrir exécute la macro Auto_Ouvrir, j'ai mis une explication dans la page "Liste costume Jazz" n'oublie pas que je travail avec Excel 2000 Extension .XLS du fichier. je supose que tu as une version plus récente!!!
Il Fait 1,09 Mo.

encore Merci pour t'on aide.
Papy Dédé
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
11 mars 2013 à 20:32
Re

La macro auto ouvrir ne fonctionne pas, j'ai ouvert directement la page par la macro de la page
Je ne suis arrivé à ce que je voulais mais quand même à quelque chose, tu verras mes explications dans la page costume Jazz, comme tu es pressé de finir enfin ce travail titanesque
En tout cas bravo belle réalisation

https://www.cjoint.com/?3CluFAxuMgx
Tiens moi au courant

Bien cdlmnt
0
Papy Dédé
12 mars 2013 à 08:39
Bonjour via55,

Cette foi, c'est moi qui suis nul. Cela ne fonctionne pas, j'ai beau changer l'extension du fichier image, (mes images sont en.png) donc en transparence. (Elles m'ont servies aussi à créer un catalogue).
Avec image dans le commentaire, tu sais que c'est la bonne image puisqu'elle a été sélectionnée. Mais la, comment sais-tu en survolant la cellule ou en faisant un double clic que c'est la bonne image qui va apparaître. Dis moi si je me trompe, mais la je ne comprends pas. Pour moi il manque quelque chose...
explique-moi je ne voudrai pas mourir idiot.
0
Papy Dédé
12 mars 2013 à 09:06
Remplace Auro_Ouvrir par Auto_Open, j'ai déja eu le cas et quelque foi ça fonctionne.
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
12 mars 2013 à 12:00
Bonjour,

Je m'aperçois que j'ai indiqué colonne 12 dans mes explications pour les noms des photos et c'est colonne 13
Il faut que toutes les cellules de le colonne 13 soient renseignées avec les noms qu'ont tes images dans leur fichier (sans l'extension) ainsi si tu as appelé la 1ere image" bolero jaune" tu mets bolero jaune en ligne 2 colonne 13 à la place de Image3 que j'avais mis pour le test et ainsi de suite pour toute la colonne

Ensuite il faut que le chemin indiqué dans le code pour repertoire image soit le bon, celui indiqué correspond à ma configuration mais chez toi il doit falloir adapter
pour connaitre le chemin dans ton dossier image tu fais clic droit sur une image et tu fais afficher Propriétés

Par contre il n'accepte pas les images en PNG dans une userform il faut du JPEG, du GIF ou du BITMAP

LA seule solution serait de convertir toutes tes images dans un de ces format (c'est possible rapidement avec un logiciel gratuit comme Format Factory)

Je continue à chercher une solution pour garder tes comentaires avec une image vide à l'intérieur et faire changer l'image par macro

cdlmnt
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
12 mars 2013 à 12:23
Re

Enfin trouvé pour changer l'image du commentaire ! tu vas pouvoir garder tes images en png

voci le code à mettre dans le worksheet Selection change de ta feuille :

If Not Application.Intersect(Target, [E2:E200]) Is Nothing Then
chemin = "C:\Documents and Settings\Utilisateur\Mes documents\Mes images\" 'à adapter
With Target
nf = Cells(Target.Row, Target.Column + 8).Value & ".png"
exist = Dir(chemin & nf) 'regarde si le fichier image existe
.ClearComments 'supprime le commentaire existant
If exist = "" Then MsgBox "L'image " & nf & " n'existe pas.": Exit Sub
.AddComment
With .Comment.Shape
.Fill.UserPicture chemin & nf
.ScaleHeight 1.5, msoFalse, msoScaleFromTopLeft
.ScaleWidth 1.5, msoFalse, msoScaleFromTopLeft
.LockAspectRatio = msoTrue
End With
End With
End If

Il faut adapter le chemin à ton ordi comme précédemment
Il faut toujours rentrer tous les noms des images en colonne 13 de ta feuille jazz

Bon courage

Cdlmnt
0
Papy Dédé
12 mars 2013 à 13:33
Re avec la premiere solution, j'avais pas compris pour image3 dans la colonne 13.
J'ai donc fait un essais avec trois images extension Gif
2 sur 3 ont fonctionnées

Pour la solution suivante tout en gardant les images.png j'ai pas compris, il n'y a plus d'userform dans le code
Je fini par m'y perdre...
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
12 mars 2013 à 14:19
Pour l'autre solution on garde le principe des commentaires donc plus besoin d'userform

Le changement de selection d'une cellule de la colonne 5 charge l'image dans la fenetre commentaire
Au depart il faudrait remplacer toutes les images dans les commentaires par une simple couleur dans Format du commentaire Couleurs et traits Remplissage

Par contre à la fermeture du fichier les images vont rester d'où augmentation du poids de ton fichier (ce qui n'arrive pas avec la 1ere solution avec userform)
Il faudrait faire une macro qui à la fermeture à nouveau remplace toutes les images pas une couleur

Je pense que la solution de l'userform est meilleure, de plus l'image reste affichée tant que l'utilisateur ne la ferme pas (ce qui évite qu'elle ne se referme avec un leger mouvement de souris comme avec le commentaire) et on peut déplacer l'userform

Enfin en ce qui concerne ton image GIF qui n'a pas fonctionné il doit simplement y avoir un nom légérement different entré en colonne 13 (un espace, une majuscule ..;)


Modifier le code ainsi pour faire apparaitre un message d'erreur

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Column = 9 Then Target.Value = Date
If Target.Column = 5 Then
répertoireImage = "C:\Documents and Settings\Utilisateur\Mes documents\Mes images" ' à adapter

NomImage = Cells(Target.Row, Target.Column + 8).Value

If Dir(répertoireImage & "\" & NomImage & ".png") = "" Then MsgBox "L'image " & NomImage & " n'existe pas.": Exit Sub

UserForm1.Image1.Picture = LoadPicture(répertoireImage & "\" & NomImage & ".jpg")
UserForm1.Show

End If

End Sub

Qu'en penses-tu ?
0
Papy Dédé
12 mars 2013 à 14:33
Re,
Je suis daccort avec toi, la solution de l'userform et mieux, en effet, j'avais un interval de trop dans le nom de l'image.
A moi de jouer, je verrai cela à mon retour d'exam medicaux.

encore merci pour le coup de main et à bientot.
je te tiens au courant.
Papy Dédé
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
12 mars 2013 à 15:49
OK

j'ai oublié une chose
Si tu veux que l'userform se referme et s'ouvre à nouveau automatiquement quand on double clique sur une autre ligne ul faut mettre sa propriété ShowModal sur False (Dans l'Editeur de Macro F4 pour afficher la fenetre de propiétés et cliquer sur userform dans la liste au dessus) pour acceder au Propriétés)
0
Papy Dédé
25 mars 2013 à 08:58
Bonjour via55
J'ai enfin terminé, et je voulais te remercier pour t'a précieuse aide.
A + peut-etre et encore MERCI...
0
Bonjour Via55

Nous somme le Vendredi 19 Avril 2013, et comme tu connais le fichier sous excel 2000, je sollicite ton aide.
Ma question est:
Comme j'ouvre chaques feuilles à l'aide d'un menu personnalisé, je voudrais supprimer le message d'alerte de protection de la feuille à l'ouverture de celle-ci tout en conservant sa protection.
Que devrais-je ajouter dans mon module d'ouveture de feuille (module qui ouvre la feuille et personnalise le Menu) pour supprimer ce message sachant qu'a la fin de ce module , j'active la protection de la feuille avec ce code: Sheets("Liste Costumes Jazz").Protect "1960", True, True

Donc quand je quitte cette feuille je ne puisse pas à sa nouvelle ouverture avoir ce message d'alerte (comme si la feuille n'etait pas protegée)

Peut-tu m'aider?
j'espere que cela ne te derange pas et que tu auras la solution.
Merci à toi via55

Papy Dédé
0
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
19 avril 2013 à 19:10
Bonsoir Papy Dédé

Supprimer le message je ne pense pas mais puisque tu protèges la feuille à la fin du module d'ouverture tu peux à l'inverse la déproteger avec Unprotect au début du module

Cdlmnt
0