Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

eutrophisation

XLDnaute Occasionnel
Bonjour

Je viens par le présent message vous solliciter afin de savoir s'il existe un moyen d'annuler les formules se trouvant sur une plage (ligne) par rapport au contenu d'une cellule se trouvant dans la même ligne que la plage en question.
Je m'explique par un exemple:
Supposant la cellule B8 est vide et la plage P8:Z8 contient des formules qui permettent de calculer des valeurs situées entre la cellule C8:O8 et afin de ne laisser que des valeurs dans la plage P8:Z8 je saisie "vérifié" dans la cellule B8 et les formules s'annulent ne laissant que les valeurs dans cette plage.
Par ce moyen mon objectif est de réduire la taille de mon fichier.
J'espère avoir été comprise et je vous remercie de votre collaboration si précieuse.
 
Re : effacer formule

Bonsoir
A aucun moment dans mon message j'ai parlé de formule qui efface formule ...J'ai parlé de moyen et je crois que vous m'en avait proposé le moyen.
Après tout pourquoi pas passer par copier coller valeur....
Merci
 
Dernière édition:
Re : effacer formule

Bonjour à tous


Est-tu vraiment sur que le VBA t'interesse ? 😉
Car si cela est, il te suffit de faire tourner l'enregistreur de macros, non ?
(Pendant que tu fais Edition/Collage spécial/Valeurs)
Ce qui te donne ceci (en prenant ton exemple du premier message)
Code:
Sub Macro1()
' Macro1 Macro
    Range("P8:Z8").Select
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub
Ensuite on nettoie un peu le code
Code:
Sub Macro1()
' Macro1 Macro
    Range("P8:Z8").Copy
    Range("P8:Z8").PasteSpecial Paste:=xlPasteValues
End Sub
Question: Pourquoi n'as-tu donc pas tenté l'aventure de l'enregistreur de macros ?
 
Re : effacer formule

Bonjour

Si j'ai bien compris, code à placer dans la feuille concernée

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("B8:B50")) Is Nothing Then
If Target.Value = "vérifié" Then
Range("P" & Target.Row & ":Z" & Target.Row) = Range("P" & Target.Row & ":Z" & Target.Row).Value
End If
End If
End Sub
Cordialement
Chris
 
Re : effacer formule

Bonjour
Je n'ai pas qu'une seule ligne. Ce que je souhaite c'est qu'à chaque fois ou je mets "vérifié" au niveau des cellules se trouvant dans la colonne B; dans la ligne ou se trouve les formules ces dernieres se voient remplacées par des valeurs. Ceci concernera 5000 lignes à partir de la ligne 8. Au lieu de passer par copier collage valeurs. Là ou je ne saisie pas "vérifiée" la ligne gardera les formules.
Merci pour votre précieuse collaboration.
 
Re : effacer formule

Bonjour
Les cellules colorées en jaune contiennent les formules….Je souhaite que ces cellules contenant des formules deviennent des valeurs et ceci par vba en saississant dans la colonne D entête "Contrôle" vérifiée. Dans cette exemple les lignes 21,24,27,28 n'existeraient pas de formules alors que les lignes 22,23,25,26 les formules resteront.
Merci
 

Pièces jointes

Dernière édition:
Re : effacer formule

Bonjour____________________EDITION I: Bonjour 00 😉

eutrophisation
Pourquoi ne trouve pas trace du code proposé par Chris401 dans ton fichier exemple?
Tu l'as essayé au moins ?
Parce ce que si tu ne prends pas le temps de tester (ou adapter) le code VBA qu'on te propose, pourquoi devrions-nous passer du temps à nous creuser les méninges pour tenter d'aider ?

PS: Ah oui, ça y est je sais, par pur désœuvrement ou pour tromper l'ennui...
Donc voici plus ou moins la même chose que Chris401
EDITION II: Bing! 00 on a presque les mêmes endives 😉
Code:
Private Sub Worksheet_Change(ByVal t As Range)
If t.Count > 1 Then Exit Sub
If t.Column = 4 Then
If t = "Vérifiée" Then
With Range("A" & t.Row).Resize(, 3)
.Value = .Value
End With
End If
End If
End Sub
 
Dernière édition:
Re : effacer formule

Bonjour à toutes et à tous,

... il est peut-être temps de joindre un fichier exemple simplifié, non ?...

🙄 Oui, il était temps !

Une autre suggestion avec ce code, placé dans le module de l'onglet :

Code:
Option Explicit
Private Sub Worksheet_Change(ByVal c As Range)
    If c.Column <> 4 Or c.Row < 21 Or c.Count > 1 Then Exit Sub
    If c = "Vérifiée" Then
        With c.Offset(, -3).Resize(, 3)
            .Value = .Value
            .Interior.ColorIndex = xlNone
        End With
    End If
End Sub

A bientôt 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

  • Question Question
Microsoft 365 Export données
Réponses
4
Affichages
906
Réponses
3
Affichages
880
Retour