écriture automatique + couleur

Résolu
shadowskill067 Messages postés 28 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 13 janvier 2014 - Modifié par shadowskill067 le 7/01/2014 à 14:54
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 - 8 janv. 2014 à 11:16
Bonjour,

je souhaite écrire une ligne de code qui doit respecter les conditions suivantes:
- écrire à la première ligne vide
- modifier une valeur écrite automatiquement par une couleur définie

je m'explique.
j'ai un tableau comportant 6 colonnes (accès, login, mot de passe, date, heure, commentaires).
lors d'une écriture automatique d'une ligne je souhaite dans un cas normale ne rien faire et dans d'autre (seulement à l'ouverture et fermeture d'un accès), changer la couleur de la cellule appartenant a la colonne "commentaires".

écrire dans la première ligne vide, ça je sais faire. Mais dire q'un bout doit ou non changer de couleur. je bloque.

        'écrire dans l'historique
i = 2
While Feuil9.Cells(i, 1).Value <> ""
i = i + 1
Wend
Feuil9.Cells(i, 1).Value = "Read/Write/DataWriting" 'Access
Feuil9.Cells(i, 2).Value = Feuil6.Range("C2") 'Login administrator
Feuil9.Cells(i, 3).Value = Feuil6.Range("D2") 'PassWord
Feuil9.Cells(i, 4).FormulaR1C1 = DateValue(Date) 'Date
Feuil9.Cells(i, 5).FormulaR1C1 = TimeValue(Time) 'Time
Feuil9.Cells(i, 6).Value = "Open Cession" 'Data Comments
'Feuil9.Cells(i, 6).ColorIndex = 3 'cell red color
'Feuil9.Cells(i, 6).ColorIndex = 4 'cell green color
Feuil6.Range("E2").Value = Feuil6.Range("E2") + 1 'incrementation each login
Feuil6.Range("F2").Value = DateValue(Date) 'Date of the last connection
Feuil6.Range("G2").Value = TimeValue(Time) 'Time of the last connection

la ligne de commande précédente fonctionne SAUF la couleur. un peu d'aide s'il vous plait.

6 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
7 janv. 2014 à 16:59
Bonjour,
1) Qu'entends-tu exactement par "écrire à la première ligne vide " ?
Le première rencontrée ?
ou
Celle qui suit la dernière remplie ?
Ce n'est pas la même chose
Et de toutes manière, on ne la recherche pas par une boucle mais autrement (en fonction de ta réponse à cette question)
2) la propriété colorindex ne saurait s'appliquer à une cellule, mais à l'une de ses "parties" (son texte, son intérieur, ses bordures, etc ...)
L'utilisation de l'enregistreur de macro suffirait pour te montrer le code à écrire ce point 2 !

0
shadowskill067 Messages postés 28 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 13 janvier 2014
7 janv. 2014 à 18:09
1) je souhaite écrire dans la première ligne vide
jusqu'à présent le bout de code fonctionne très bien.
j'ai écris ce même code à un autre endroit et quand je le fait répéter avec un autre utilisateur ce dernier ce bloque....

2) j'avais fait l'enregistrement de la macro des code couleur souhaité après avoir posté ce topic. pour ce point je te tien au courant.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 7/01/2014 à 18:31
Si c'est vraiment la première ligne vide trouvée en colonne A à partit du rang 2 que tu cherches (qu'elle soit donc ou non suivie par d'autres remplies), elle est retournée par
premvide = Range("A2:A" & Rows.Count).SpecialCells(xlCellTypeBlanks).Row

J'insiste : cette ligne n'est pas obligatoirement celle qui suivrait la dernière remplie. Elle est la première vide (ce que fait d'ailleurs ta boucle).


Ainsi donc : tant ton code que celui-ci retournerait 4 (et non 8) dans la configuration suivante :
A
B
C

E
F
Y



________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
shadowskill067 Messages postés 28 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 13 janvier 2014
8 janv. 2014 à 08:31
pour 1), j'ai résolue le problème. j'ai voulue écrire dans al première ligne vide alors que les cellules de la feuille était protégés. c'était très idiot.

code:
If PassWord.TextBox1.Value = Feuil6.Range("D4") Then 'access Mr XXX xxx
Feuil1.Unprotect
Feuil6.Unprotect
Feuil1.CommandButton1.Visible = True
Feuil1.Range("B1") = Feuil6.Range("C4")
Unload Me
'écrire dans l'historique
Feuil9.Unprotect
i = 2
While Feuil9.Cells(i, 1).Value <> ""
i = i + 1
Wend
Feuil9.Cells(i, 1).Value = "Read & DataWriting" 'Access
Feuil9.Cells(i, 2).Value = Feuil6.Range("C4") 'Login Mr XXX xxx
Feuil9.Cells(i, 3).Value = Feuil6.Range("D4") 'PassWord
Feuil9.Cells(i, 4).FormulaR1C1 = DateValue(Date) 'Date
Feuil9.Cells(i, 5).FormulaR1C1 = TimeValue(Time) 'Time
Feuil9.Cells(i, 6).Value = "Open Cession" 'Data Comments
With Selection.Font
.Color = -11489280
.TintAndShade = 0
End With
'Feuil9.Cells(i, 6).ColorIndex = 3 'cell red color
'Feuil9.Cells(i, 6).ColorIndex = 4 'cell green color
Feuil6.Range("E4").Value = Feuil6.Range("E4") + 1 'incrementation each login
Feuil6.Range("F4").Value = DateValue(Date) 'Date of the last connection
Feuil6.Range("G4").Value = TimeValue(Time) 'Time of the last connection
Feuil1.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
Feuil6.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
Feuil6.EnableSelection = xlNoSelection
Feuil9.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True _
, AllowSorting:=True, AllowFiltering:=True
Feuil9.EnableSelection = xlNoSelection
Else

pour 2), j'ai écrit le code comme définie dans l'enregistreur de macro, comme suit:
            Feuil9.Cells(i, 6).Value = "Open Cession"                 'Data Comments
With Selection.Font
.Color = -11489280
.TintAndShade = 0
End With
ce bout de code ne fonctionne pas apparement. pouvez-vous me montrer ou ais-je faux?

merci d'avance.
0

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

Posez votre question
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 janv. 2014 à 08:35
Qu'est donc Selection ?
0
shadowskill067 Messages postés 28 Date d'inscription mercredi 21 novembre 2012 Statut Membre Dernière intervention 13 janvier 2014
8 janv. 2014 à 08:59
la cellule qui a était selectionné lors de mon enregistrement Macro.

j'ai trouvé le bout de code:
        Feuil9.Cells(i, 6).Value = "Open Cession"                 'Data Comments
'Feuil9.Cells(i, 6).font.ColorIndex = 3 'cell red color
Feuil9.Cells(i, 6).Font.ColorIndex = 4 'cell green color
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
8 janv. 2014 à 11:16
Voilà.
0
Rejoignez-nous