MFC SI ESTVIDE alors

man95

XLDnaute Occasionnel
Bonjour à vous tous,

Je viens vers vous car je n'arrive pas du tout à faire ce que je souhaite (cela m'arrive très souvent sur Excel).

J'aimerai appliquer une MFC avec une condition assez simple

MFC sur la cellule A1 --- si A1 est vide alors mettre la valeur de A10 sinon garde la valeur de A1

Il existe peut être un solution autre. Je suis preneur de toutes vos idées.


Merci d'avance

Manu
 

tototiti2008

XLDnaute Barbatruc
Re : MFC SI ESTVIDE alors

Bonjour man95,

une MFC (= Mise en forme conditionnelle) sert à changer la Mise en forme, c'est à dire la présentation des données dans la cellule
une MFC ne te permettra donc pas de changer la valeur de la cellule mais seulement sa présentation
pour changer la valeur, il te faudrait une formule, mais tu ne peux pas mettre la formule en A1 et en même temps attendre que l'on saisisse une valeur en A1
Donc, soit tu mets la formule dans une autre cellule que A1, soit il faudra éventuellement mettre une macro qui remplit A1 par A10 si a1 est vide, mais dans ce cas il faudrait préciser à quel moment la macro devra s'exécuter
 

man95

XLDnaute Occasionnel
Re : MFC SI ESTVIDE alors

Bonjour tototiti2008,

j'avais peur de cette réponse mais j'espérais quand même ... Pauvre de moi

La solution peut être par macro peux me convenir en faisant en sorte qu'elle s'execute lors de la sélection de la feuille.

Est il possible que tu me donnes le départ de cette macro (sur une ligne: Ex D5:AA5) afin de l'adapter à mes besoins

Te remerciant d'avance pour ton concours

Man
 

man95

XLDnaute Occasionnel
Re : MFC SI ESTVIDE alors

Re,

Merci de votre patience.

Voici un petit morceau du fichier.

Comme indiqué l'idéal serait que la macro s'execute lors de la selection de la feuille

Merci encore

Manu
 

Pièces jointes

  • SI ESTVIDE.xls
    35 KB · Affichages: 44

tototiti2008

XLDnaute Barbatruc
Re : MFC SI ESTVIDE alors

Re,

Peut-être, dans le code de la feuille Janvier

Code:
Private Sub Worksheet_Activate()
Dim Lig As Long, Col As Long
    Application.ScreenUpdating = False
    For Lig = 4 To 14
        For Col = 4 To 31
            If ActiveSheet.Cells(Lig, Col).Value = "" Then
                ActiveSheet.Cells(Lig, Col).Value = ActiveSheet.Cells(Lig + 19, Col).Value
            End If
        Next Col
    Next Lig
    Application.ScreenUpdating = True
End Sub
 

Discussions similaires

Réponses
4
Affichages
220

Statistiques des forums

Discussions
312 347
Messages
2 087 502
Membres
103 564
dernier inscrit
Paul 1