petit problème de MFC avec formule

Olivier_HTP

XLDnaute Occasionnel
Bonjour le Forum,

Afin d'alterner horizontalement le blanc et le bleu en couleur de motif de fond de mes cellules, je sélectionne la plage concernée, et j'utilise la formule suivante pour la mise en forme conditionnelle :

=MOD (LIGNE();2)=1

Le résultat obtenu est bien celui souhaité, à la différence que les lignes en blanc affichent encore les traits verticaux d'origine délimitant les cellules, alors que les lignes en bleu ne les affichent pas.

Ce que je voudrais :
alternance une ligne sur 2 du bleu et du blanc, mais pas d'affichage des traits qui matérialisent les cellules (les traits 'd'origine' pas les bordures qu'on ajoute éventuellement)

Curieusement cette même formule utilisée dan un ancien classeur ne m'affiche pas ces fameux traits, mais quelque chose m'échappe et je ne vois pas quoi!

Merci d'avance aux spécialistes de MFC qui voudront bien me dépanner.

Bonne fin de journée à tous,

Olivier_HTP
 

Olivier_HTP

XLDnaute Occasionnel
Merci Monique et Tibo de votre aide.

Malheureusement je ne m'en sors pas car en fait mon problème est le suivant :

J'ai une ancienne macro qui récupère le contenu de certaines lignes d'une feuille (feuil2) pour les recopier à la fin d'un tableau de base de données qui se trouve sur une autre feuille (BD) du même classeur.

Le problème :
La feuille BD contient cette fameuse MFC citée au début de ce fil, mais pas la feuil2 qui est 'brute' telle qu'Ecxel les ouvre. De ce fait, quand la macro recopie les lignes de feuil2 dans BD, elle me met la panique dans ma MFC blanc/bleu alternés.

Je ne peux pas faire la même MFC dans la feuil2 (ce qui ne me gênerait pas), car la macro de recopie que les lignes sélectionnées par l'utilisateur, et donc on n'a pas forcément le respect de l'alternance des couleurs.

C'est pourquoi j'avais pensé rajouter des instructions dans ma macro pour lui dire de refaire la MFC de la feuille BD à chaque fois qu'elle s'exécute. Mais je n'y arrive pas.

Si quelqu'un a une idée...

Merci encore en tout cas à vous deux et bonne soirée à tous.

Olivier_HTP
 

Tibo

XLDnaute Barbatruc
Re olivier,

Je ne m'y connais pas beaucoup en macros (et même moins que ça encore).

Mais ne serait-il pas possible dans ta macro de compléter ta base de données avec l'équivalent de Copier / Collage Spécial Valeur.

Ca évite d'écraser le format appliqué aux cellules de ta feuille BD.

Bonne soirée.
 

Tibo

XLDnaute Barbatruc
Re olivier,

Je ne m'y connais pas beaucoup en macros (et même moins que ça encore).

Mais ne serait-il pas possible dans ta macro de compléter ta base de données avec l'équivalent de Copier / Collage Spécial Valeur.

Ca évite d'écraser le format appliqué aux cellules de ta feuille BD.

Bonne soirée.
 

Olivier_HTP

XLDnaute Occasionnel
Merci Tibo de ta suggestion.

J'ai essayé de la mettre en oeuvre, mais ça ne fonctionne pas, à savoir que ça ne recopie plus rien.

Voici ci-dessous, d'abord le début de la macro qui fonctionne mais écrase la MFC de la BD, et ensuite la même macro modifiée au niveau de la copie pour ne copier que le format des nombres et leur valeur sans modifier la mise en forme :

MACRO 1 :

Dim DerLigne As Long, DerL As Long, Coll As Long
Dim Cl As Range
Application.ScreenUpdating = False
Sheets('LISTES').Select
DerLigne = Range('AB65536').End(xlUp).Row
For Each Cl In Range('AB1:AB' & CStr(DerLigne))
If Cl.Value = 'X' Then
Cl.Select
Coll = ActiveCell.Row
Range('C' & CStr(Coll) & ':L' & CStr(Coll)).Select
Selection.Copy
Sheets('SAISIE').Select
DerL = Range('F65536').End(xlUp).Offset(1, 0).Row
Range('C' & CStr(DerL) & ':L' & CStr(DerL)).Select

ActiveSheet.Paste

End If
Application.CutCopyMode = False
Sheets('LISTES').Select
Next

******* MACRO 2 **********

Dim DerLigne As Long, DerL As Long, Coll As Long
Dim Cl As Range
Application.ScreenUpdating = False
Sheets('LISTES').Select
DerLigne = Range('AB65536').End(xlUp).Row
For Each Cl In Range('AB1:AB' & CStr(DerLigne))
If Cl.Value = 'X' Then
Cl.Select
Coll = ActiveCell.Row
Range('C' & CStr(Coll) & ':L' & CStr(Coll)).Select
Selection.Copy
Sheets('SAISIE').Select
DerL = Range('F65536').End(xlUp).Offset(1, 0).Row
Range('C' & CStr(DerL) & ':L' & CStr(DerL)).Select

ActiveSheet.PasteSpecial Paste:=xlPasteValuesAndNumberFormats, Operation:= _
xlNone, SkipBlanks:=False, Transpose:=False



End If
Application.CutCopyMode = False
Sheets('LISTES').Select
Next

A l'évidence la partie 'collage' n'est pas bonne.
Merci à celui ou celle qui voudra bien me corroger.

Bonne soirée à tous,

Olivier_HTP
 

Olivier_HTP

XLDnaute Occasionnel
Bonsoir le Forum,

Pour montrer que j'ai bien lu la Charte, je mets ci-dessous la ligne corrigée permettant de recopier par collage spécial sans modifier la mise en forme, notamment la MFC, lors du collage :


Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False


Comme ça le fil est complet, et terminé.

Merci à touis de votre concours.

Olivier_HTP
 

Discussions similaires

Statistiques des forums

Discussions
312 344
Messages
2 087 447
Membres
103 546
dernier inscrit
mohamed tano