Détection de zéro dasn une feuille excel et remplacment de ceux-ci par une chaîn

meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006 - 25 janv. 2006 à 11:23
cs_bulgom Messages postés 8 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 8 juillet 2010 - 1 févr. 2006 à 15:35
Bonjour, mon pb est certainement super facile à résoudre, mais je n'arrive aps a faire exactement ce que je souhaite.... et étant débutante macro VB sous excel, je préfère vous demander.

alors voilà, g une feuill excel qui se rempli de données qui sont dans un autre fichier (collage spécial). si le fichier source comprend des lignes vides dans ma sélecion, il va me mettre des zéros dans chaque cellule de ma feuill. le p^b, c qu'après,g une boucle qui permet de m'afficher dans un graphique les données de ma feuill, et comme les champs vide de la source deviennent des zéros, j'ai un nombre certain de colonnes dans mon graphique qui se mettent à 0 en abcisse, et 0 en ordonnée.
qq1 saurait-til comment faire pour détecter (par une boucle) à partir de quel moment g zéro dans mes deux colonnes utilisées pr faire mon graphique, et surtt, comment pouvoir supprimer ses zéros-ci, et uniquement ceux-ci, pour avoir une chaîne de caractère vide, pour que n'apparaissent dans mon graphique que les cellules pr lesquelles les deux colonnes sont renseignées et ou aau moins l'une n'est aps nulle.

la suppression n'est pas obligatoire, en fait si qq1 sait comment faire une boucle pr détecter lorsque j'ai une ligne dans mes deux colonnes qui sont nulles en même temsp, et faire afficher le graphique que pour les cellules d'indice inférieur.

je sais, c aps très facile à comprendre, masi c aps évident à expliquer non plus, par contre, j'en ai vraiment besoin, alors si l'un d'engre vous pouvaient m'aider, ça seait vraiment super. pake j'en a besoin pour mon boulot. Merci D'avance.

24 réponses

cs_bulgom Messages postés 8 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 8 juillet 2010
25 janv. 2006 à 13:53
Pour ce je comprends de tes explications, ton probleme peut etre resolu en selectionnant la plage de cellules liees a tes graph puis de faire un Rechercher / Remplacer de la valeur 0 par "" ; ce qui donne en vba :

Range("A1:B15").Select 'plage de cellules liees
Selection.Replace What:="0", Replacement:="", LookAt:=xlWhole, _
SearchOrder:=xlByRows, MatchCase:=False
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
25 janv. 2006 à 13:58
Bonjour,

Il suffit que tu adaptes pour tes colonnes, dans l'exemple j'ai choisis les colonnes A et B.



Sub EffacerZéro()

Dim cel As Range, cell As Range, PlageTest, PlageTest1

Set PlageTest = Range("A1:A100")

Set PlageTest1 = Range("B1:B100")

Application.ScreenUpdating = False

For Each cel In PlageTest

If cel.Value = 0 Then

cel.Value = ""

End If

Next cel

For Each cell In PlageTest1

If cell.Value = 0 Then

cell.Value = ""

End If

Next cell

Application.ScreenUpdating = True

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
25 janv. 2006 à 14:04
j'ai déjà essayé avec un replace... et pourtant, ça ne marche pas. merci quand même bulgom.
jpleroisse, je v essayer ta proposition, je vous tiens tous informé de comment ça se passe.
Merci en tt cas a vous deux.
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
25 janv. 2006 à 14:14
Re,

Au cas où tu aurais un message "Type Incompatible", place des apostrophes le 0 devant cel et cell.Value "0".



jpleroisse
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
25 janv. 2006 à 14:25
je n'ai pr l'instant aps de pb d'incompatibilité, par contre, j'ai " la méthode 'Range' de l'objet '_Global'a échoué"... c'est apr rapport à ton "Set PlageTest = Range("A1:A100")"..; v essaye de voir.
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
25 janv. 2006 à 15:12
Re,

Bizarre, je n'ai aucun problème chez-moi !



jpleroisse
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
25 janv. 2006 à 15:22
ben écoute, c certainment a cause du reste de mon programme.
je vais essayer de voir ça en ne mettant que ça dans ma macro.
par contre, après, tout compte fait, sur mon grpahique, je récupère les données de deux feuill différentes... je sais pas si je peux programmer ça d'un coup.

au fait, si c pas indiscret, tu es programeur, étudiant, ou tu fais koi?
0
cs_bulgom Messages postés 8 Date d'inscription lundi 14 février 2005 Statut Membre Dernière intervention 8 juillet 2010
25 janv. 2006 à 15:49
Concernant ton souci : " la méthode 'Range' de l'objet '_Global'a échoué"...

Essaye d'inserer un
[A1].select

entre
Dim cel As Range, cell As Range, PlageTest, PlageTest1
et
Set PlageTest = Range("A1:A100")

Ce qui ne devrait pas perturber le rete du code donne par
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
25 janv. 2006 à 16:13
bien tenter, masi là aussi g une erreur.... il me met erreur 424: objet requis... et l'objet en question c A1!!
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
25 janv. 2006 à 20:03
Re,

Je répond très tard, mais c'est de pis en pis pour avoir les pages sur
le forum, pourquoi, mystère celà marche très bien sur les autres forum
ou je participe. Après cette parenthèse, pourrait tu me dire dans
quelle colonne de la feuille1 et quelle colonne de la feuille2, tu veux
que les 0 soit remplacé par "".



jpleroisse
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
26 janv. 2006 à 08:32
c pas grave jp, c déjà cool de m'aider.
et désolé, masi je reçois les avertissements de nouveaux message sur la messagerie de mon boulot, dc j'ai aps pensé à regarder hier soir.
Alors, mes données sources sont dans un fichier excel intitulée, par exemple ''temps d'arrêt''. je fais un collage avec liaison de ces données dans un autre fichier excel qui s'appelle "essai", sur une feuill nommée DATA. alors je te montre, g deux colonne,s une avec des équipements, l'autre avec les temps d'arrêt de ces équipements:

H013 78
B68T 148
Hd289 0
Hft89 18
0 0
0 0

ca, c ce que g dans DATA... les 2 dernières lignes, c pake dans le fichier source, elles sont vides, et c ces zéros là que je veux supprimer, celui qui est en face de Hd289, je le laisse!!! c une données.
en fait, il faut aussi ke je compte jusqu'où g des données (ici, 4 lignes) et que je donne en macro les données source donc, de mon graphique.... faut ke g une série, avec en X la 1ère colonne, jusqu'à (ici)Hft89, et en Y la seconde colonne, jusqu'à la même ligne... pake si je définit une plage arbitraire, il va me mettre plsin d'histogramme avec 0 en abcisse et 0 en ordonnée, et ça, j'en veux pas! ! !
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
26 janv. 2006 à 11:32
bon, ben c un peu la merde....
g le pb de détection des zéros, masi g un autre pb... enfait g un graph a double netrée aux abscisses.... mais ej sais aps commen le définir comme tel... pake il aime pas les SeriesCollection(2)..... du moins, pr l'instant. si il sait kel est le type de graphique, peut être ca marchera. est-ce que qq1 sait si on peu le rentrer dans la macro?
0
sssouf Messages postés 7 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 26 janvier 2006
26 janv. 2006 à 15:43
slt meydel,
pr le pb de detection de zero insert ce code ds une macro et essai

Sub Verif_ZERO()


Dim Col1, Col2 As String
Dim i As Integer


i = 2
Col1 = InputBox("Entrer la 1er colonne:")
If Col1 = "" Then Exit Sub
Col2 = InputBox("Entrer la 2emme colonne:")
If Col2 = "" Then Exit Sub



Col1 = Col1 + "2"
Col2 = Col2 + "2"


While Len(Range(Col1).Text) <> 0
With Range(Col1)

If .Text = "0" Then
.Value = ""
Range(Col2).Value = ""
End If


i = i + 1
Col1 = Left(Col1, 1) + Right(Str(i), Len(Str(i)) - 1)
Col2 = Left(Col2, 1) + Right(Str(i), Len(Str(i)) - 1)


End With
Wend


End Sub

bon courage!!
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
26 janv. 2006 à 15:49
merci pour le courage, je epsne que j'en aurai bein besoin!!!

je vasi essayer de comprendre comment marche ton code.... et ensuite, on verra!
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
26 janv. 2006 à 15:50
Merci pour le courage, je pense que j'en aurai bien besoin! ! !
merci pr ton code, v essayer de comprendre comment il marche, et après, on verra ce que ça donne!
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
27 janv. 2006 à 09:31
salut sssouf

g essayé ta macro sur iun fichier de 2colonnes et 40 lignes, dont els 3 dernirèes sont a 0....
ben désolé, ça compile bien et tt, mais ça ne marche pas ! ! !
j'essaie de voir si je peux y changer qqchose pr le faire tourner...
0
sssouf Messages postés 7 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 26 janvier 2006
27 janv. 2006 à 10:07
alors si le prog ne bug pas, essai de savoir le code ASCII d'une cellule où il y a le zéro puis aprés fait un test sur ce code ascii é je pense que sa marchera
0
meydel Messages postés 13 Date d'inscription lundi 23 janvier 2006 Statut Membre Dernière intervention 1 février 2006
27 janv. 2006 à 10:10
je veux bien....
masi comment ej fais pour avoir lecde ASCII d'une cellule? je connais le code ASCII des différents caractères de l'alphabet, et des chiffres, amsi aps ceux des cellules excel ! ! !
0
sssouf Messages postés 7 Date d'inscription mercredi 30 novembre 2005 Statut Membre Dernière intervention 26 janvier 2006
27 janv. 2006 à 11:58
non, quand je dit l'ascii de la cellule c que j veut dire le comptenu de cette cell, bon oublions tt ça t'as essayé de tester sur l'ascii de zero?
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
27 janv. 2006 à 12:20
Salut,

Simple idée, pourquoi ne traites tu pas le probleme en Amont, Si ce sont les lignes vides du fichier collé qui t'embetent, traite le fichier à importer avant, en supprimant les lignes vides...

Si j'ai bien tout compris, cela devrait résoudre ton problème.

@+
Julien
0
Rejoignez-nous