XL 2010 MFC vider une cellule

jcpat

XLDnaute Occasionnel
Bonjour,

voici ma problématique

je cherche à supprimer la valeur d'une cellule si dans l'autre cellule j'ai repos
si dans A1 j'ai repos alors dans A2 je supprime le contenu

j'ai essayé cela en MFC

=SI(A1"repos",A2"")

mais cela ne marche pas

pouvez vous m'aider :)
 

frangy

XLDnaute Occasionnel
Bonjour,

Si la valeur de A2 est fixée lorsque A1 est différent de "repos", tu peux écrire dans A2 :
=SI(A1<>"repos";"Valeur fixée"; "")

Si la valeur de A2 est libre, tu vas devoir passer par une procédure VBA pour effacer son contenu.

Tu peux également "tricher" et utiliser une MFC afin que la couleur de police soit identique à la couleur de fond, la cellule semblera alors être vide. Mais dans ce cas, le contenu n'est pas supprimé.

Cordialement.
 

jcpat

XLDnaute Occasionnel
Bonsoir Frangy
merci pour ta réponse si rapide :)

alors du coup A2 est libre, la valeur change régulièrement, jai bien fait une règle MFC pour masquer mais j'ai besoin que la cellule soit vide car elle incrémente un autre compteur..

Du coup si une bonne âme à une VBA sous le coude , je suis preneur :)
 

jcpat

XLDnaute Occasionnel
Bonjour,

effectivement avec un fichier ce sera plus facile à comprendre :) , merci Victor21.

Le fichier est une mise en forme d'un planning qui fonctionnera en final en macro, mais pour ma question j'ai extrait qu'un onglet, celui qui me pose problème.
Il y a dans la colonne P des horaires qui correspondent à des chiffres mais parfois j'ai des CA (congés) qui sont inscrit et c'est ces cellules que je voudrait vider avec la cellule qui correspond en face, en sachant que les cellules CA ne sont jamais les même.

En Bref par exemple si en P15 j'ai CA alors en O15 j'ai un chiffre et je veux que les cellules soient vidées P15 et O15 soient vidées.

Voila j’espère que c'est clair

Merci @ vous
 

Pièces jointes

  • test.xlsx
    25.8 KB · Affichages: 14
Dernière édition:

Victor21

XLDnaute Barbatruc
Re,

Pas sûr d'avoir compris la logique de votre fichier, ni votre but.
A tout hasard, en O3, à recopier vers le bas :
=(LIGNE()-2)*ESTNUM(1*GAUCHE(P3;1))
renverra 0 (facile à masquer avec un format de nombre personnalisé : "0;;") si le 1er caractère de P n'est pas un chiffre.
 
Dernière édition:

frangy

XLDnaute Occasionnel
Bonjour,

En langage recodé, je comprends que tu veux effacer les cellules Ox: Px si Px contient "CA".
Essaie cette macro et dis-nous si cela correspond à ton attente.
VB:
Sub Test()
Dim Cel As Range
    For Each Cel In Range("P3:P" & Range("P" & Rows.Count).End(xlUp).Row)
        If Cel = "CA" Then Cel.Offset(, -1).Resize(, 2).ClearContents
    Next Cel
End Sub

Cordialement.
 

jcpat

XLDnaute Occasionnel
Merci Frangy

:) oui tu m'as bien décodé ;-), impeccable cela fonctionne, du coup je l'ai fait évoluer pour ajouter des COM, COMP, repos
mais l'execution du fichier s'arrête dés qu'il rencontre #N/A, j'ai trouvé un formule mais j'ai un bug d'excecution.

j'ai remis le fichier avec mes modifications.
 

Pièces jointes

  • test.xlsm
    31.4 KB · Affichages: 5

frangy

XLDnaute Occasionnel
Essaie comme cela
VB:
Sub Test()
Dim Cel As Range
    For Each Cel In Range("P3:P" & Range("P" & Rows.Count).End(xlUp).Row)
        If Not IsError(Cel) Then
            If Cel = "CA" Then Cel.Offset(, -1).Resize(, 2).ClearContents
            If Cel = "COM" Then Cel.Offset(, -1).Resize(, 2).ClearContents
            If Cel = "COMP" Then Cel.Offset(, -1).Resize(, 2).ClearContents
            If Cel = "repos" Then Cel.Offset(, -1).Resize(, 2).ClearContents
        Else
            Cel.Offset(, -1).Resize(, 2).ClearContents
        End If
    Next Cel
End Sub
Cordialement;
 

Discussions similaires

Réponses
4
Affichages
201

Statistiques des forums

Discussions
312 111
Messages
2 085 405
Membres
102 883
dernier inscrit
jameseyz