code vba pour cellule remplie?

lejafinde

XLDnaute Nouveau
Bonjour à tous,

Je ne m'y connais pas du tout en code vba...je patauge pas mal...
J'ai compris que si on mettait :
Target.Value = "" , le vide entre les guillemets signifie cellules vides.
Je souhaiterais savoir ce qu'il faut mettre entre les guillemets pour signifier "n'importe quel texte".

Merci d'avance pour votre aide

Tim
 

lejafinde

XLDnaute Nouveau
Re : code vba pour cellule remplie?

Salut Philippe,

Et que doit-on mettre entre les "" pour signifier n'importe quel texte?
En gros, j'aimerais que pour une fonction, excel me supprime automatiquement les cellules avec du texte. Mais je ne sais pas comment il peut les repérer.
Si target.value ="n'importe quel texte" then clearcontents. (pour faire bref)

Merci à toi..et aux autres ;)

Tim
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : code vba pour cellule remplie?

Re,

je me doutais bien en voyant la question qu'elle était mal exprimée
Si target.value ="n'importe quel texte" then clearcontents. (pour faire bref)

If Target.Value<>"" Then ............ (si le contenu de la cellule est différent de rien )

équivaut à dire: Si Target.Value = quelque chose (du texte ou une valeur numérique)

à+
Philippe
 

lejafinde

XLDnaute Nouveau
Re : code vba pour cellule remplie?

Merci Philippe pour ces précisions. C'est vrai que ma question n'était pas particulièrement claire...je n'ai pas le bon jargon ;)

Pourrais-tu m'aider sur mon fichier directement parce que je ne m'en sors pas...?

Actuellement, quand on écrit dans la colonne "Type", le mot "AR", "DE" ou "BU", deux actions se passent :
1. Des cellules se mettent en grisée (avec mise en forme conditionnelle)
2. Dans les cellules grisées, les mots "mobilier" ou "bureau" apparaissent. Un autre internaute à réussi à m'écrire ça en code, c'est déjà fantastique !
Jusque là tout va bien.

Mais voilà un exemple de ce qui m'embête encore :
Si j'écris "DE", le mot "mobilier" s'écrit dans les zones grisées correspondante, ça c'est parfait. Je complète la cellule non grisée dans la colonne "nom", disons le mot "chaise". Mais maintenant, je me rends compte que j'ai fais une erreur. Je ne devais pas écrire "DE" mais "BU", les zones grisées changent comme convenu, le mot "bureau" prend la place dans les bonnes zones grisées, le mot "chaise" disparait MAIS le mot "mobilier" qui est apparu automatiquement dans la colonne "description" reste affiché. Serait-il possible qu'il soit automatiquement effacé?
Est-il possible d'appliquer cela pour chaque cas? En bref, dès que l'on écrit "BU", "AR" ou "DE", tout s'efface sauf bien entendu les mots dans les zones grisées attenant à "BU" et "DE".

Je ne sais pas si tout ça est très clair. Si tu as besoin de plus de précision, dis le moi. Je mets mon fichier excel à disposition.
D'avance merci pour ton temps précieux

Tim
 

Pièces jointes

  • Lejafinde_fiche horaire.xlsm
    101.7 KB · Affichages: 59
  • Lejafinde_fiche horaire.xlsm
    101.7 KB · Affichages: 62
  • Lejafinde_fiche horaire.xlsm
    101.7 KB · Affichages: 64

lejafinde

XLDnaute Nouveau
Re : code vba pour cellule remplie?

Salut Philippe,

Je suis obligé de déjà revenir vers toi... j'ai un autre petit problème.
J'aimerai copier 4x le même tableau. 1 tableau = une semaine par mois.
Mais quand je sélectionne toutes les cellules et je les colles en dessous, un message d'erreur m'affiche : erreur d'exécution '13', incompatibilité de type. Et j'ai cette ligne là qui ce met en jaune : Target = UCase(Target)

J'aimerai aussi pouvoir avoir une feuille/onglet par mois. Soit 12 au total. Est ce que je devrais changer certaines choses dans le code? Le nom de la feuille sans doute...

Merci d'avance pour ton temps et ton aide

tim
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : code vba pour cellule remplie?

Re,

concernant ma réponse apportée au post#6, j'ai simplement adapté et corrigé le code que j'ai découvert
si je l'avais fait moi-même il aurait été totalement différent
la boucle For... Next présente dans le code est tout à fait inutile, il y avait moyen de faire beaucoup plus simple


J'aimerai aussi pouvoir avoir une feuille/onglet par mois. Soit 12 au total. Est ce que je devrais changer certaines choses dans le code? Le nom de la feuille sans doute...
Il n'y a pas de contre-indication à avoir un fichier contenant 12 feuilles, il suffit de le construire en étant attentif à ce que toutes les feuilles aient le même canevas

une seule macro sera nécessaire et sera à mettre dans
Private Sub Workbook_SheetBeforeRightClick
ou
Private Sub Workbook_SheetSelectionChange

pour pouvoir agir sur toutes les feuilles

à+
Philippe
 

lejafinde

XLDnaute Nouveau
Re : code vba pour cellule remplie?

Salut Philippe,
Merci pour tes réponses, c'est très sympa. Et si jamais tu as du temps à perdre, n'hésite pas à refaire un code plus simple ;)

J'ai aussi un message d'erreur quand j'efface plusieurs cellules à la fois...bizarre..je ne sais pas d'où ça vient.

Merci pour tout

Tim
 

phlaurent55

Nous a quittés en 2020
Repose en paix
Re : code vba pour cellule remplie?

Re,
J'ai aussi un message d'erreur quand j'efface plusieurs cellules à la fois...bizarre..je ne sais pas d'où ça vient.
pour éviter ces erreurs, mettre ceci en début de code (la seconde ligne)
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub

je construis un fichier valable pour l'année dès que j'ai un peu de temps

à+
Philippe
 

Discussions similaires

Statistiques des forums

Discussions
312 682
Messages
2 090 865
Membres
104 679
dernier inscrit
Arnaud Meunier