Mise en forme avec macro

bonjour,

j'aimerais créer une macro pour faire une mise en forme personnalisée, le tout est expliqué dans le fichier joint:

Salut,

Je trouve ta demande imprécise - notamment car il y a des cas de figure non prévus - alors voici ce que devrait réaliser mon code, d’après ce que j’ai compris :

  • Tout d’abord il n’est déclenché qu’à l’ouverture du fichier et non plus par la suite
  • Ensuite toutes les lignes de la ligne 4 à la dernière ligne de la colonne A sont passées en revue l’une après l’autre

Alors, ligne après ligne :

  • si la cellule de la colonne D est remplie alors qu’il n’y a rien d’inscrit dans la cellule de la colonne C, son contenu est effacé (donc les deux cellules apparaissent vides immédiatement après l’ouverture).
  • Si la cellule de la colonne B est vide, il ne se passe rien
  • Si la cellule de la colonne B comporte la valeur A, la cellule de la colonne D sera marquée en rouge si la différence entre sa valeur et la valeur de la cellule C est plus que 15, sinon elle est marquée en vert
  • Si la cellule de la colonne B comporte la valeur n’importe quelle autre valeur que A (et qu’elle n’est pas vide), la cellule de la colonne D sera marquée en rouge si la différence entre sa valeur et la valeur de la cellule C est plus que 30, sinon elle est marquée en vert.

Si jamais, indique-moi ce qui doit être corrigé.

Cordialement.

sur un nouveau fichier , j'ai ajouté :

 
Option Explicit
Private Sub Workbook_Open()
Dim i As Integer
With Sheets("Feuil2")
    For i = 4 To .Range("E20000").End(xlUp).Row
        If .Range("F" & i) = "" Then GoTo Etiquette
        If .Range("N" & i) = "" Then GoTo Etiquette
        If .Range("K" & i) = "" Then GoTo Etiquette
            Else
        If .Range("F" & i) = "A" Then
            If .Range("N" & i) - .Range("K" & i) > 15 Then
                .Range("P" & i).Interior.ColorIndex = 3 ' rouge
            Else
                .Range("P" & i).Interior.ColorIndex = 4 ' vert
            End If
        Else ' si .Range("F" & i) à n'importe quelle autre valeur que A ou ""
            If .Range("N" & i) - .Range("K" & i) > 30 Then
                .Range("P" & i).Interior.ColorIndex = 3 ' rouge
            Else
                .Range("P" & i).Interior.ColorIndex = 4 ' vert
            End If
        End If
        End If
Etiquette:
    Next i
End With
End Sub

il m'affiche des erreur de compilation, savez-vous pourquoi?

De retour de vacances (sans ordinateur), je découvre ton message.

Sans voir ton nouveau fichier, c'est pas facile de te répondre ; merci de le joindre.

Je serais en vacances dans un autre endroit encore quelques jours, mais uniquement avec Excel 2003 à ma disposition. Merci de passer ton fichier au format .xls avant de le joindre à ton prochain message.

Cordialement.

bonsoir,

je reviens sur cette macro car j'ai remarqué que les mises à jour se font juste à l'ouverture du fichier,j'aimerais bien que ca se fasse simultanément après une nouvelle donne,sans fermer et ré ouvrir le fichier.

deuxième point : J'aimerais utiliser la même macro pour une autre variable, je ne sais pas où placer l'algorithme.

merci beaucoup pour votre précieuse aide.

Salut,

Le 15 juillet je t’ai dit que je ne pouvais pas faire grand-chose sans ton fichier. Je n’ai alors plus eu de nouvelle de ta part - ni de remerciement pour mon travail gratuit - puis tu resurgis - un peu tel le loup poussé hors du trou par la faim - mais sans fournir le fichier demandé

J’attends donc là-dessus afin de pouvoir te répondre.

Merci pour ton intervention et à la prochaine.

Rechercher des sujets similaires à "mise forme macro"