!!! Cellule 1/2 pleine ou 1/2 vide !!!

F

fabrice

Guest
Bonjour tout le monde,

Voilà ca fait déjà plusieurs jours (voir semaines) que je me pose une question: Comment poser en condition le contenu d'une cellule.

Je m'explique. Je voudrai savoir si c'est possible de savoir si une cellule est pleine ou vide sous VBA.
Est ce que on pourrait le faire avec une synthaxe du style: if Range ("A1").value=true then ...

Merci de votre réponse.
FAb
 
A

alexis

Guest
Salut à tous,

Allez je me risque :
C'est possible mais comme ça :
If Range("A1").value <> "" then...

A+

Alexis

PS : peut-être qu'un jour, j'arriverai à donner un bon tuyau...
Sinon, déchainez vous, je suis pas susceptible ! :))

Bonne journée
 
F

fabrice

Guest
SAlut Alexis

Merci pour ton aide.
Y a un truc que je ne comprend pas. Si je place ta formule dans une macro et que je lui affecte un boutton, tout va bien mais si je fais la chose suivante, y a pas fonctonner:

Private Sub Worksheet_change(ByVal target As Range)
If Range("A19").Value <> "" Then Range("C19").ClearContents
End Sub

En fait, je voudrai qu'Excel détecte automatiquement si la cellule A19 est pleine ou vide, sans avoir à activer une macro.

Merci de votre aide
FAb
 
P

Pyrof

Guest
resalut


pour vider une cellule tu utilise :
Range("C19").ClearContents


une autre solution
Range("C19")=empty

Il y a une difference quand tu veux atteindre la dernière cellule,
si tu met un valeur dans une cellule et que tu l'efface, les commandes re recherche de la dernière cellule s'arretera sur cette cellule (qui est vide),
si tu utilise empty il n'en tiendra pas compte.

je ne suis peut être pas très clair....
 
F

fabrice

Guest
salut

En fait je place ma formule dans la Sheet (clique droit sur l'onglet et visualisation du code.)

Le PB est qu'il y a déjà des formule dans ma sheet (cf post n°1_1/364_18205).
Est ce que c'est génant???

Merci
Fab
 
F

fabrice

Guest
Resalut

J'ai essayé ta solution Pyrof mais c'est sans succes.
on a travaillé decu avec Zon mais il rest un probleme. Le pc calcul je ne sais quoi. J'ai l'impression que les deux "macro" ne peuvent cohabituer dans la Sheet.
Quelqu'un(e) autre t il (elle) une idée???

Merci de vore aide.
FAb

PS, joint le dernier fichier
 
P

Pyrof

Guest
re salut à tous,


Il calcule calcule est n'en finit pas.

le problème c'est qu'a chaque changement d'une cellule il fait le test et va changer la cellule c19,
comme cette dernière à changé de valeur il relance la macro et ainsi de suite

J'ai il y a quelque temps fait cette reamarque sur un fil , quelqu'un a trouvé la solution pour qu'il nexécute qu'une seule fois.

Mais je ne me souviens pas qui : appel à tous
 
@

@+Thierry

Guest
Bonjour tout le monde

Je suis assez OQP, mais j'avais 5 minutes pour me détendre et je suis venu sur XLD... et je viens de zieuter ton TestVar.xls de 16:31 ......... Tu es vraiment "Calamity Fab" !!

J'ai changé une valeur de "A1" et ........ Punaise !!! j'ai été obligé de sortir par escape !

En plus ton bouton 8 recherche une macro "Test" qui n'existe pas...

Du coups j'ai presque envie de rajouter un article dans la charte ! "Ne prenez pas le forum pour un banc d'essai de vos macros foireuses..." Bon je te connais bien c'est pour çà que je me permets de te dire ça Fab...

Avant de te lancer dans les Macros évènemenetielles comprends au moins leur fonctionnement... C'est très vicieux on arrive vite à faire des BOUCLES SANS FIN ...

Pour ton problème et le trou de mémoire de Pyrof c'est :

Debut Macro
Application.EnableEvents = False

Fin Macro
Application.EnableEvents = False

Mais ATTENTION, j'insiste, Fab, car je sais que tu vas parfois superficiellement sans comprendre vraiment.... EnableEvents n'est pas la panacée universelle...

Dans ton code tu pourrais par exemple limiter aussi la porté de "Worksheet_change" avec des targets définies comme ceci (attention je ne sais pas ce que tu dois changer dans ta feuille...)

Private Sub Worksheet_change(ByVal target As Range)
Dim A As String
If target.Address = "$A$1" Or target.Address = "$A$19" Or target.Address = "$E$1" Then

Sheets("Feuil1").Rows("5:16").EntireRow.Hidden = True
Application.EnableEvents = False
A = Range("test")

If A = Sheets("feuil2").Range("A1") Then Sheets("Feuil1").Rows("5:7").EntireRow.Hidden = False
If A = Sheets("feuil2").Range("A2") Then Sheets("Feuil1").Rows("8:11").EntireRow.Hidden = False
If A = Sheets("feuil2").Range("A3") Then Sheets("Feuil1").Rows("12:16").EntireRow.Hidden = False
If A = Sheets("feuil2").Range("A4") Then Sheets("Feuil1").Rows("5:16").EntireRow.Hidden = False

If Range("A19").Value <> "" Then Range("C19").ClearContents
End If
Application.EnableEvents = True


End Sub


Aller bonne soirée, mais Fab, explique ton problème et met un "warning" quand tu as une boucle sans fin plutôt que de la balancer comme çà sur le forum avec coimme seuile explication "Je joins un fichier pour meilleure compréhension.FAb" grrrrr

@+Thierry
 
F

fabrice

Guest
Salut Thierry

Ca fait plaisir de te revoir, j'ai cru que tu me boudé ;=)

Désolé pour le fichier! je ne pensé pas faire une si grosse baitise.
Bon, je vais essayé ce que tu m'as dis demain.

Merci a tous,
FAb
 
@

@+Thierry

Guest
Ok Fab !!

Non je ne boude personne je suis en pleine consolidation de bilan... j'ai des nouveau progs à développer, et on change de system electronic bancaire...

Voilà pourquoi on ne me voit que tard dans la nuit !!

Bonne Soirée à vous deux et à tous les zami(e)s...

@+Thierry
 
Dernière modification par un modérateur:

Discussions similaires

Statistiques des forums

Discussions
314 645
Messages
2 111 536
Membres
111 184
dernier inscrit
amiko