Supprimer contenu cellule selon autre cellule

Fermé
meaurysse Messages postés 66 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 2 octobre 2020 - 21 août 2018 à 09:43
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 - 30 août 2018 à 14:44
Bonjour,


Sur Excel j'essaie de créer une macro qui permet d'analyser une valeur d'une cellule et qui en fonction de sa valeur, supprime le contenu d'une autre cellule. Jusqu'à là pas trop de soucis, un simple "IF range("L5") < 1 then range("Q5") = " " ..... Cependant j'aimerai appliquer cette formule à tout un tableau entier sans devoir écrire l'analyse pour chaque ligne indépendamment ...

Donc éviter de devoir faire :
If Range("L5") < 1 Then
Range("Q5") = ""
End If
If Range("L6") < 1 Then
Range("Q6") = ""
End If
If Range("L7") < 1 Then
Range("Q7") = ""
End If

etc...

Dans mon tableau exemple il n'y a que 11 lignes mais le but serait d'appliquer ça ensuite à un tableau bien plus grand (environ 1000 à 2000 lignes)

Est-ce qu'il y a une solution qui analyse pour toutes les lignes de la plage définie qui dès qu'il y a une valeur dans le contenu de cette plage, qui pour la ligne correspondante supprime la donnée dans colonne "Q" ?

Soit : "Si dans plage "L5:L15" il y a une valeur < 1 alors la ligne correspondante en colonne "Q" = ""
sachant que dans "L5: L15" il peut y avoir plusieurs cellules concernées en même temps.

Je connais déjà la formule range("Q" & (activecell.row)) = "" mais cela s'applique uniquement sur la ligne "actuellement sélectionnée"..

Comment faire pour que l'analyse s'applique à l'entier de la plage souhaitée ?


Merci d'avance de vos réponses à cette question.


A voir également:

4 réponses

ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
21 août 2018 à 09:52
Bonjour

Const lideb = 5

Sub ok()
Dim li As Long, lifin As Long
lifin = Range("L" & Rows.Count).End(xlUp).Row
For li = lideb To lifin
  If Range("L" & li).Value < 1 Then Range("Q" & li).Value = ""
Next li
End Sub

Cdlmnt
1
meaurysse Messages postés 66 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 2 octobre 2020
21 août 2018 à 11:48
Salut, merci de ta réponse mais ton code n'est pas fonctionnel ...

"Erreur d'exécution '1004':
La méthode 'Range' de l'objet '_Global' a échoué"
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
21 août 2018 à 13:49
Tu ne dis pas sur quelle ligne se produit l'erreur
Peut être un pb d'accès à une feuille
Le fichier
https://www.cjoint.com/c/HHvlWxsUGqB

Cdlmnt
1
meaurysse Messages postés 66 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 2 octobre 2020
Modifié le 21 août 2018 à 15:05
Voilà le lien de mon fichier "exemple" pour 11 lignes
https://www.cjoint.com/c/HHvneuOYxFw

(Il faut l'enregistrer avant d'ouvrir car comme c'est un XLSM l'explorateur risque de trouver une erreur) - firefox
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
21 août 2018 à 16:05
https://www.cjoint.com/c/HHvofjyZHAB

Cdlmnt
1
meaurysse Messages postés 66 Date d'inscription mercredi 7 mars 2012 Statut Membre Dernière intervention 2 octobre 2020
30 août 2018 à 14:40
Re bonjour,

Pourriez-vous me renvoyer votre précédent fichier? Il n'est plus disponible en téléchargement...

Merci d'avance et meilleures salutations
0
ccm81 Messages postés 10900 Date d'inscription lundi 18 octobre 2010 Statut Membre Dernière intervention 2 novembre 2024 2 425
30 août 2018 à 14:44
https://www.cjoint.com/c/HHEmSt4TbeB

Cdlmnt
0