écriture automatique + couleur [Résolu]

Messages postés
28
Date d'inscription
mercredi 21 novembre 2012
Dernière intervention
13 janvier 2014
-
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.
Afficher la suite 

Votre réponse

6 réponses

Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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 !

Commenter la réponse de ucfoutu
Messages postés
28
Date d'inscription
mercredi 21 novembre 2012
Dernière intervention
13 janvier 2014
0
Merci
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.
Commenter la réponse de shadowskill067
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
28
Date d'inscription
mercredi 21 novembre 2012
Dernière intervention
13 janvier 2014
0
Merci
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.
Commenter la réponse de shadowskill067
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
0
Merci
Qu'est donc Selection ?
Commenter la réponse de ucfoutu
Messages postés
28
Date d'inscription
mercredi 21 novembre 2012
Dernière intervention
13 janvier 2014
0
Merci
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
ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Contributeur
Dernière intervention
11 avril 2018
-
Voilà.
Commenter la réponse de shadowskill067

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.