Problème règle de surbrillance dans macro

dubock

XLDnaute Nouveau
Bonjour,

Dans ce fichier joint, je réalise une macro qui me permet d'envoyer en feuille 2 mes clients en rouge en feuille 1.

Si ma relance est effectuée en feuille 2, je souhaite que la colonne se mette en vert.

Le problème c'est que si vous regardez les règles de surbrillance en colonne E feuille 2 avant la macro et après la macro, il y en a une qui vient se greffer et qui casse mon acheminement logique..

Comment dois - je faire ?

Merci à vous ! :)
 

Pièces jointes

  • gestion 1b.zip
    23.3 KB · Affichages: 35

Hulk

XLDnaute Barbatruc
Re : Problème règle de surbrillance dans macro

Hello,

Ca ne sert à rien de poster un autre fil avec le même sujet, alors que tu as un début de réponse dans l'ancien fil !

Remonte le fil, je t'ai proposé quelque chose, à toi d'y adapter.
 

dubock

XLDnaute Nouveau
Re : Problème règle de surbrillance dans macro

Merci hulk pour ta réponse d'hier, mais je voulais y joindre mon fichier car je ne pense pas m'être fait comprendre hier.

Je ne suis pas un expert et j'ai essayé toute la matinée d'adapter ta proposition mais en vain...

Aurais tu une autre piste ? ou une explication ?
 

Hulk

XLDnaute Barbatruc
Re : Problème règle de surbrillance dans macro

Re,

Ah ok, ben si jamais, même dans un ancien fil, tu peux toujours rajouter un fichier joint.

Tu te connectes sur l'ancien fil, tu cliques sur le bouton "Modifier", ensuite tu cliques sur "Aller en mode avancé" et là tu cliques sur "Gérer les pièces jointes".

Pour ton problème, je vais tâcher de voir, mais te garantis rien, moi aussi en plein apprentissage :rolleyes:
 

Efgé

XLDnaute Barbatruc
Re : Problème règle de surbrillance dans macro

Bonjour dubock, Hulk :),
Si j'ai bien compris, ce qui n'est vraiment pas certain, la mise en forme en rouge ne sert qu'a l'extraction des lignes...
Je propose, sans MFC cette macro:
Code:
Sub Test_Efgé()
For i = 2 To Sheets("Base").Range("F" & Application.Rows.Count).End(xlUp).Row
    If Sheets("Base").Cells(i, 6) < Date Then
        Sheets("Base").Cells(i, 6).EntireRow.Copy Sheets("Relances").Range("A" & Sheets("Relances").Range("A" & Application.Rows.Count).End(xlUp).Row + 1)
        Sheets("Base").Cells(i, 6).Interior.ColorIndex = 4
    End If
Next i
MsgBox "Exportation terminée"
End Sub
Par contre je ne sait pas comment seront gérés les doublons. Ne vaut il pas mieux effacer la feuille Relance avant l'export?
Dans ce cas:
Code:
Sub Test_Efgé2()
Sheets("Relances").Range("A2:H" & Sheets("Relances").Range("A" & Application.Rows.Count).End(xlUp).Row).ClearContents
For i = 2 To Sheets("Base").Range("F" & Application.Rows.Count).End(xlUp).Row
    If Sheets("Base").Cells(i, 6) < Date Then
        Sheets("Base").Cells(i, 6).EntireRow.Copy Sheets("Relances").Range("A" & Sheets("Relances").Range("A" & Application.Rows.Count).End(xlUp).Row + 1)
        Sheets("Base").Cells(i, 6).Interior.ColorIndex = 4
    End If
Next i
MsgBox "Exportation terminée"
End Sub
Et pour terminer avant le W.E, ne vaut il pas mieux supprimer les lignes exportées depuis la feuille Base ?
Code:
Sub Test_Efgé3()
Sheets("Relances").Range("A2:H" & Sheets("Relances").Range("A" & Application.Rows.Count).End(xlUp).Row).ClearContents
For i = Sheets("Base").Range("F" & Application.Rows.Count).End(xlUp).Row To 2 Step -1
    If Sheets("Base").Cells(i, 6) < Date Then
        Sheets("Base").Cells(i, 6).EntireRow.Copy Sheets("Relances").Range("A" & Sheets("Relances").Range("A" & Application.Rows.Count).End(xlUp).Row + 1)
        Sheets("Base").Cells(i, 6).EntireRow.Delete
    End If
Next i
MsgBox "Exportation terminée"
End Sub
Cordialement

P.S Hulk c'est vrai qu'on est en perpétuel apprentissage sur cette terre...;) :D
 

dubock

XLDnaute Nouveau
Re : Problème règle de surbrillance dans macro

En fait oui, la MFC de 'base' me sert à selectionner les cellules comprises dans la macro.

Cependant, dans ma macro je ne prend pas que la colonne F mais les colonnes A B C D F dont les les cellules F sont rouges.

Pour enregistrer, je filtrais la colonne F par filtre couleur, je copiait les colonnes A B C D F de 'base' vers 'relances'.

Dans les deux macros que tu m'a proposé Efgé, je ne retrouve pas mon résultat..

Avais tu compris cela ?
 

Efgé

XLDnaute Barbatruc
Re : Problème règle de surbrillance dans macro

Re
A tu essayé les Trois macros, ou les a tu juste lues ?
Je copie toute la ligne qui comporte en colonne F une date inférieure à Aujourd'hui (au jour ou tu lance la macro).
Donc si ta feuille Relance a la même structure que ta feuille Base, tu retrouvera les lignes demandées (même en cachant la colonne E sur la feuille Relance, voir exemple joint).
Je ne pourai pas revenir ici avant ce soir, mais je pense que dans mes propositions au moins une répond à ta demande (voir les trois); et puis quelqu'un d'autre aura peut être une autre version (Hulk, par exemple).
Cordialement
 

Pièces jointes

  • gestion 1b(2).zip
    24.9 KB · Affichages: 36

Hulk

XLDnaute Barbatruc
Re : Problème règle de surbrillance dans macro

Re, slt Efgé :)

Désolé pas pu répondre avant.

Ben ta macro Efgé est bien et il semble que c'est ce qu'il veut... je ne ferai pas mieux, surtout que je n'aime pas trop les MFC :rolleyes:

Juste que sur la feuille "Base" la colonne E est masquée et apparemment il veut copier les feuilles A, B, C, D et F...
 

Efgé

XLDnaute Barbatruc
Re : Problème règle de surbrillance dans macro

Re
Hulk :), Entièrement d'accord avec toi :
apparemment il veut copier les feuilles A, B, C, D et F...
Mais je ne suis pas capable de créer un tableau sans la colonne E :eek: :eek:,donc je copie l'ensemble de la ligne.
D'un autre coté, si il s'agit de déplacer des lignes d"une feuille à une autre, je pense "qu'onestbonsurcecouplà" (C) Dull ;) :D.
Cordialement
 

Efgé

XLDnaute Barbatruc
Re : Problème règle de surbrillance dans macro

Re bonjour au fil,
Comme je suis tétu, et sans retour de dubock, j'ai fini par faire une version avec tableau et sans la colonne E en supprimant les lignes copiées.
Code:
Private Sub CommandButton1_Click()
Application.ScreenUpdating = False
Dim Tableau()
With Sheets("Base")
    NbrLign = .Range("F" & Application.Rows.Count).End(xlUp).Row
    ReDim Tableau(1 To NbrLign, 1 To 5)
    k = 1
        For i = NbrLign To 2 Step -1
            If .Cells(i, 6) < Date Then
                Tableau(k, 5) = .Cells(i, 6).Value
                    For j = 1 To 4
                        Tableau(k, j) = .Cells(i, j).Value
                    Next j
                k = k + 1
                .Cells(i, 6).EntireRow.Delete
            End If
        Next i
End With
With Sheets("Relances")
    .Range("A2:E" & .Range("A" & Application.Rows.Count).End(xlUp).Row + 1).ClearContents
    .Range("A2").Resize(UBound(Tableau, 1), 5) = Tableau
    .Activate
End With
Application.ScreenUpdating = True
End Sub
Cordialement
 

Pièces jointes

  • gestion 1b(tableau).zip
    25.4 KB · Affichages: 42

Discussions similaires

Réponses
11
Affichages
583
Réponses
26
Affichages
527
Réponses
5
Affichages
255

Statistiques des forums

Discussions
312 555
Messages
2 089 550
Membres
104 208
dernier inscrit
laura29180