Imposer un mot à un contenu de cellules - VBA

  • Initiateur de la discussion Initiateur de la discussion Poussin
  • Date de début Date de début

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 !

Poussin

XLDnaute Occasionnel
Bonjour à tous,

A l'aide de macros, je crée un tableau de données. Mon problème est qu'à l'intérieur de ce tableau je me retrouve avec des cellules vides et des cellules #DIV/0! donc je voudrais remplacer toutes ces cellules par le contenu suivant : indisponible (en texte).

Les cellules qui sont concernées sont de C3 à M7 représnetant ainsi un rectangle, toutes ces cellules devront donc indiquer soit indisponible soit une certaine valeur.

Je vous remercie par avance pour votre aide.

Cordialement
 
Re : Imposer un mot à un contenu de cellules - VBA

Bonjour,

Pour comprendre d'où viennent les vides et les DIV/0, ça serait plus simple d'avoir l'extrait de ton fichier avec son code ...

Bon après-midi,

mth

Edit 🙂 🙂 🙂 Hello Robert 🙂 🙂 🙂
 
Dernière édition:
Re : Imposer un mot à un contenu de cellules - VBA

Bonjour mth,

Merci pour ta réponse mais en fait peu importe d'où ils viennent car ils sont voulus mais je voudrais les remplacer par quelque chose de plus visuelle comme information indisponible. Encore merci pour votre aide.
 
Re : Imposer un mot à un contenu de cellules - VBA

Bonjour Poussin, Mireille, bonjour le forum,

Peut-être comme ça :
Code:
Sub Macro1()
Dim cel As Range 'déclare la variable cel
 
On Error Resume Next 'si une erreur est générée, passe à la ligne suivante
'attribue la chaîne "indisponible" aux cellules vides de la plage (génère une erreur si la plage ne contient pas de cellules vides)
Range("C3:M7").SpecialCells(xlCellTypeBlanks).Value = "indisponible"
For Each cel In Range("C3:M7") 'boucle sur toutes les cellules cel de la plage
    If IsError(cel.Value) = True Then cel.Value = "indisponible" 'si la cellule contient une erreur, cellule égale "indisponible"
Next cel 'prochaine cellule de la boucle
End Sub
 
Re : Imposer un mot à un contenu de cellules - VBA

Merci beaucoup pour ta réponse. J'ai voulu approfondir cette solution en ajoutant une autre zone malheureusement je n'obtiens pas le résultat attendu je ne comprends pas ma faute :

Code:
Range("C3:D7", "C12:C16").SpecialCells(xlCellTypeBlanks).Value = "indisponible"
For Each cel In Range("C3:D7", "C12:C16")
    If IsError(cel.Value) = True Then cel.Value = "indisponible"
Next cel

De plus le problème qui se pose est pour les drapeaux que j'ai mis en place grâce à Excel 2010 vu qu'il utilise les valeurs A2 et B2 si l'un des 2 devient indisponible je me retrouve avec #VALEUR!.
J'avais donc pensé à remplacer ce #VALEUR! par indisponible malheureusement cela écrase le drapeau et lorsque je refais la manipulation je garde indisponible.

Je vous joins un morceau de mon tableau pour mieux comprendre.

Merci d'avance pour votre aide.
 

Pièces jointes

Re : Imposer un mot à un contenu de cellules - VBA

Bonjour poussin, Mireille, bonjour le forum,

N'ayant pas Excel 2010 je ne comprends pas ce que tu entends par "drapeaux"... Mais peut-être en remplaçant la formule :
Code:
(B3-A3)/A3
par :
Code:
=SI(OU(A3="";B3="");"indisponible";(B3-A3)/A3)
 
Re : Imposer un mot à un contenu de cellules - VBA

Merci Robert je viens d'essayer ton code mais malheureusement cela ne fonctionne pas correctement il me met toujours #VALEUR!. Les drapeaux sous Excel 2010 permettent d'afficher un drapeau rouge, orange ou vert suivant une valeur obtenue.

Encore merci pour votre aide si jamais vous avez d'autres idées pour y parvenir.
 
- 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

Retour