Remplissage de champs avec UserForm

Bonjour François,

Et bien dans ce cas, je peux me contenter d'un seul trait !

Merci

JB

Bonjour

avec 1 trait

7reception-v2.xlsm (47.88 Ko)

A+ françois

Bonsoir François,

Merci beaucoup, le seul trait sera suffisant sachant qu'Excel n'est pas vraiment destiné à ça !

Par contre désormais je cherche à colorer chaque ligne (à partir de la ligne 4) de ma feuille Index en comparant 2 dates.

C'est à dire que je souhaiterais, pour chaque ligne, comparer la date d'expédition avec la date actuelle.

Je joins mon fichier avec les couleurs et les explications, cela sera plus explicite je pense.

J'ai récupérer des bouts de code mais avec des exemples trouvés sur ce forum mais mon niveau en vba n'est pas suffisant pour y parvenir, pourrais-tu me venir en aide stp ? :) J'ai mis le début de code dans le module 4.

Bonne soirée :)

JB

5reception-v3.xlsm (38.60 Ko)

Bonjour

Ma solution par mfc (j'ai pas fait 30 et 60 mais 1 mois ou 2)

11reception-v3.xlsm (41.61 Ko)

A+ François

Bonjour François,

Super, je vas pourvoir ainsi modifier le code pour faire clignoter le fond de cellules !

Par contre, j'ai une petite question sur EXCEL. J'ai placé sur une feuille une case à cocher qui est modifiée selon son état dans un UF. Ma feuille EXCEL est protégée et pour autant, je peux toujours cocher ou décocher dans la feuille EXCEL, est-ce un bog ou n'ai-je pas utilisé la bonne fonction ? Il y a aussi la fonction checkbox Active X qui peut être utilisée, quelle est la différence ?

Bon dimanche

JB

Bonjour

Ta case à cocher est associée à une cellule?

en mode création, clic droit sur la case à cocher/ format de contrôle/ cellule liée

si celle ci est verrouillée tu ne peux l'utiliser

A+ François

Bonsoir François,

Je vais regarder ça, je pense que les cases à cocher ne sont pas associées à des cellules, je vais essayer !

Par contre, le fichier que tu m'as renvoyé comporte 1 ou 2 coquilles, j'ai corrigé la première (il manquait le "For") mais je ne vois pas ce qui pose problème pour la deuxième "datediff".

Pourrais-tu m'éclairer stp ?

Bonne soirée à toi :)

JB

Bonsoir François,

Auriez-vous une solution pour le problème que je rencontre s'il vous plait ?

Bonne fin de soirée :)

JB

Bonjour

Les coquilles, comme tu dis, sont sur des macros que tu as créé...

J' ai corrigé

13reception-v3.xlsm (42.63 Ko)

A+ François

Bonjour François,

Merci beaucoup pour ta contribution, effectivement j'ai du faire pas mal d'erreurs !

J'ai adapté ta macro, la date à récupérer se trouve en colonne "F" et non "H", j'ai dû faire une erreur dans mon énoncé mais j'ai corrigé !

Par contre je voudrais que ce code s'applique uniquement s'il n'y a pas de date de réception donc cela revient à dire case en colonne H vide. Comment adapter cette macro ?

Sub Coloration()
  Dim CAC As Date, d As Integer, i As Long, derligne As Long
  derligne = Range("A" & Rows.Count).End(xlUp).Row
  For i = 4 To derligne 'Each varcel In Columns(h)
    CAC = CDate(Range("F" & i).Value) ' ActiveCell.Value 'on récupère la date en colonne F
    d = DateDiff("m", CAC, Date)
    If d > 30 And d < 60 Then 'supérieur à 30 jours et inférieur à 60 jours
      Range("A:F").Font.ColorIndex = 45 'on colore la ligne depuis la colonne A jusqu'à la colonne F en orange
    ElseIf d > 90 Then 'supérieur à 90 jours
      Range("A:F").Font.ColorIndex = 3 'on colore la ligne depuis la colonne A jusqu'à la colonne F en rouge
    End If
  Next
End Sub

Merci à toi :)

Bonne fin de journée

JB

Bonjour

Sub Coloration()
  Dim CAC As Date, d As Integer, i As Long, derligne As Long
  derligne = Range("A" & Rows.Count).End(xlUp).Row
  For i = 4 To derligne 
   if range("H"&i)="" then 'à ajouter *******************************
    CAC = CDate(Range("F" & i).Value) ' ActiveCell.Value 'on récupère la date en colonne F
    d = DateDiff("m", CAC, Date)
    If d > 30 And d < 60 Then 'supérieur à 30 jours et inférieur à 60 jours
      Range("A:F").Font.ColorIndex = 45 'on colore la ligne depuis la colonne A jusqu'à la colonne F en orange
    ElseIf d > 90 Then 'supérieur à 90 jours
      Range("A:F").Font.ColorIndex = 3 'on colore la ligne depuis la colonne A jusqu'à la colonne F en rouge
    End If
   endif 'à ajouter *******************************
  Next
End Sub

A+ François

Merci beaucoup François, malheureusement cela ne fonctionne pas et je n'arrive pas à m'en sortir. Pourtant on vérifie bien si la colonne H est vide mais ne faut-il pas lu dire pour chaque ligne ?

Je poste mon fichier ici au cas où j'aurais oublié un élément.

JB

Bonjour

c'est corrigé mais...

orange entre 30 et 60 mois

rouge si 90 et +

entre 2 rien

y a pas une erreur

A+ François

Bonjour :)

Si si, je vais modifier le 90 par 60. Par contre, cela fonctionne de ton côté car chez moi cela reste en rouge peu importe la date d'expédition renseignée ou même en présence d'une date de réception alors que si il y a une date de réception ça devrait repasser en incolore :/

Bonjour

As tu enlever la mise en forme conditionnelle.

A+ François

Bonjour François,

Je n'ai rien modifié concernant la mise en forme conditionnelle pourquoi ?:)

Bonne journée

JB

Bonsoir François,

Est-il possible de tout intégrer dans le code vba plutôt que de créer une mise en forme conditionnelle ?

Bonne soirée :)

JB

Bonsoir

il ne doit pas y avoir de mise en forme conditionnelle

A+ François

Et bien j'ai repris le dernier fichier que tu m'as envoyé et je n'ai pas réussi à faire varier les couleurs, je ne comprends pas pourquoi

Bonjour

Moi ça marche

A+ François

Rechercher des sujets similaires à "remplissage champs userform"