Ligne Macro pour supprimer cellule contenant #DIV/0!

heislsim

XLDnaute Junior
Bonjour tout le monde,

Je suis presque au bout de mes macros. J'ai des cellules préprogrammé avec des formules mais mon nombre de ligne varie à chaque fois et pour cause de graphique (je vous passe les détails) il faudrait simplement que je supprime toutes les cellules où est affichées "#DIV/0!" dedans. Dans le fichier par exemple, supprimer tous ceux de la colonne F par exemple.

j'ai tenté de bricole en créant une nouvelle colonne en faisant un coller spécial uniquement des valeurs (et non pas formule) mais marche pas ... :-(
 

Pièces jointes

  • Forum 1.xlsx
    48.8 KB · Affichages: 49
  • Forum 1.xlsx
    48.8 KB · Affichages: 66
  • Forum 1.xlsx
    48.8 KB · Affichages: 55

Gurgeh

XLDnaute Occasionnel
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Salut heislsim,

Justement, ce serait pas mal que tu nous donnes un peu de détail, notamment pourquoi tu veux les supprimer.

S'il s'agit d'adapter la plage qui sert de support à ton graphique, il y a plus simple que de supprimer les cellules en erreur, on peut simplement construire le graphique sur une plage nommée, et définir cette plage nommée en fonction de la présence ou non d'erreurs...

Mais pour aller plus loin, il faudrait que tu nous expliques pourquoi tu veux supprimer ces #DIV0.

Gurgeh
 

heislsim

XLDnaute Junior
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Ok, je vais faire une explication clair. Serait-il juste possible de savoir comment on fait pour faire une présentation des codes comme je le vois dans certain poste à savoir :

Code :
et la un cadre avec le code

C'est pour faire propre
 

Modeste geedee

XLDnaute Barbatruc
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Bonsour®
en F27 :
Code:
=SIERREUR(MOYENNE(B24:B30);"")
en G27 :
Code:
=SIERREUR(MOYENNE(C24:C30);"")
en H27 :
Code:
=SIERREUR(F27-$F$27;"")
en I27 :
Code:
=SIERREUR(G27-$G$27;"")
recopier vers le bas autant que nécessaire...
Capture.jpg

:rolleyes:
Code :
et la un cadre avec le code
C'est pour faire propre
voir là :
Capture.JPG

exemple :
[NOPARSE]
VB:
le code
Bla bla bla
...
Bla bla bla
[/NOPARSE]
 

Pièces jointes

  • Capture.jpg
    Capture.jpg
    30.6 KB · Affichages: 69
  • Capture.jpg
    Capture.jpg
    30.6 KB · Affichages: 69
  • Capture.JPG
    Capture.JPG
    21 KB · Affichages: 68
  • Capture.JPG
    Capture.JPG
    21 KB · Affichages: 71
Dernière édition:

heislsim

XLDnaute Junior
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Merci beaucoup :)

Après vos remarques, j'ai changé le la façon de faire la macro.

L'objectif est de sélectionner une plage de cellule pour un graphique. Sauf qu'il ne faut pas que je fige les cellules à sélectionner (comme dans le code ci dessous ou ça va d'office jusqu'à 150) car visuellement ça me relie le dernier et premier point de mon graphique (le problème venait pas des #DIV/0!).
Est-il donc possible de dire de sélectionner AA4 jusqu'à la dernière cellule de la colonne active (ou remplie, je ne sais pas le bon terme). Et je suppose que pour AB ça sera le même code avec juste les lettres à changer.

Attention : ce code ne correspond plus avec le ficher exemple. Si vous en voulez un autre je peux uper ça

Code:
Sub TEST()
    Sheets("Sujet RE").Select
    ActiveSheet.ChartObjects("Graphique 4").Activate
    ActiveChart.SeriesCollection.NewSeries
    ActiveChart.SeriesCollection(3).Name = "=""Retour"""
    ActiveChart.SeriesCollection(3).XValues = "='Hysteresis RE'!$AA$4:$AA$150"
    ActiveChart.SeriesCollection(3).Values = "='Hysteresis RE'!$AB$4:$AB$150"
End Sub
 

Gurgeh

XLDnaute Occasionnel
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Salut à tous,

Tu peux trouver la dernière colonne utilisée d'une ligne avec ce code (exemple pour la Feuil1 et la ligne 8)

DernièreColonneEnregistrements = Sheets("Feuil1").Rows(8).Find("*", , , , , xlPrevious).Column

Gurgeh
 

heislsim

XLDnaute Junior
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Merci mais je ne cherche pas à trouver la dernière ligne de ma colonne (et pas la dernière colonne de ma ligne) mais à programmer dans un macro de chercher par exemple les "Xvalues" de la cellule AA4 jusqu'à la dernière cellule (remplie) de la colonne AA

Code:
ActiveChart.SeriesCollection(3).XValues = "='Exemple'!$AA$4:$AA$150"

Je vous joins le fichier avec les données (j'ai masqué les données brutes qui servent pour les formules, inutile).
Le nombre de ligne est variable (ça ne s'arrêtera pas toujours à la ligne 82 pour l'Aller et 41 pour le Retour).

Merci d'avance pour votre patience :)
 

Pièces jointes

  • Forum 2.xlsm
    96.8 KB · Affichages: 68
  • Forum 2.xlsm
    96.8 KB · Affichages: 53
  • Forum 2.xlsm
    96.8 KB · Affichages: 65
Dernière édition:

Gurgeh

XLDnaute Occasionnel
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Euh oui, tiens, j'avais pas bien lu.

Du coup voici le code pour trouver la dernière ligne remplie d'une colonne

Code:
DernièreLigne = Sheets("Feuil1").Columns(8).Find("*", , , , , xlPrevious).row

Mais sinon y'a plus simple que la macro pour faire ton graphique. Si j'ai bien compris, ton problème est que les #DIV0 perturbent l'affichage par des points parasites. Du coup tu peux utiliser une détection d'erreur, et renvoyer la valeur #NA au lieu de #DIV0, car #NA a le bon goût de ne pas être pris en compte dans les graphiques.

Voir exemple dans le fichier joint.

Gurgeh
 

Pièces jointes

  • Forum 2.xlsm
    91.3 KB · Affichages: 57
  • Forum 2.xlsm
    91.3 KB · Affichages: 64
  • Forum 2.xlsm
    91.3 KB · Affichages: 75

heislsim

XLDnaute Junior
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Je pensais que c'était simplement les #DIV0 ( ou les #NA ) qui posaient erreur. En effet, quand j'enregistrais (avec l'enregistreur) le macro je cliquais sur ma cellule du haut puis Ctrl + MAJ + flèche de bas et théoriquement ça fait " sélectionner jusqu'à la fin de ma colonne" MAIS ça ne le fait pas dans la sélection de plage de donnée pour un graphique DONC c'est cette partie que je cherche le macro :'(
 

heislsim

XLDnaute Junior
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Elle ne change pas mon problème en faite. Même si je supprime manuellement toutes les données #DIV0 ou #NA pour avoir des cellules vident après mes valeurs mon problème est comment dire à ma sélection de s'arrêter une fois à la ligne 50 (par exemple) et une autre fois 58 car une fois j'avais des données jusqu'à 50 et l'autre fois jusqu'à 58.
 

Gurgeh

XLDnaute Occasionnel
Re : Ligne Macro pour supprimer cellule contenant #DIV/0!

Si j'ai bien compris, tu voulais effacer les lignes pour que les lignes vides ne viennent pas perturber ton graphique si tu mettais une plage fixe (par exemple jusqu'à 150). Mais peut être ce n'était pas ça ?

gurgeh
 

Discussions similaires

Réponses
2
Affichages
154
Réponses
7
Affichages
550

Membres actuellement en ligne

Statistiques des forums

Discussions
312 329
Messages
2 087 335
Membres
103 520
dernier inscrit
Azise