Procédure IsEmpty ou Is?

Résolu
Bonjour,

Coucou c encore moi j'arrive pas à finaliser mon code j'ai besoin d'aide
Par ce code je souhaite dire à vba de me mettre à vide toutes les cellules ou il n'y a pas de nombre, à parti de la ligne 1020, parceque soit j'ai des nombres soit j'ai des messages d'erreur dans mes cellules, à la place de ?, IsEmpty ca aurait été pour des cellules vide mais c pas ce que je veux y'a pas une syntaxe vba du style IsNotNumber pour remplacer le ????
Et je veux faire ca pour 20 feuilles excel que j'ai sur mon fichier

MERCIIIIIIIIII d'avance

For j = Range("A65536").End(xlUp).Row To 1020 Step -1
If Is"?"(Cells(1, j).Value) Then Columns(j).ClearContents
Next j

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Justement c pas cqui faut faire
    cque jveux c dire a vba c: si ya pas de nombre dans la cellule alors clearContents(efface le contenu)
    on pourrait raisonner à l'inverse et lui dire:
    If IsNumber(si c un nombre) alors tu me garde la cellule tel quel mais ca serait If IsNumber then cellule.keep MAIS le problème n'est pas résolu mais décalé parceque keep en vba???? jconnais pas
    tas une idée
    Merci pour tes réponses trop sympa.
    1. Les autres ont complété ma réponse, si tu fais IsNumber, il faut que tu utilises If Not devant comme ca ca reviens a faire un IsNotNumber;
      Par contre si leur solution marche pas je vois pas trop ^^
      Pour info, cptr, c'est une variable compteur.
  2. Bonjour

    Essaie avec ça:

    For j = Range("A65536").End(xlUp).Row To 1020 Step -1
         If Not IsNumeric((Cells(1, j).Value)) Then Columns(j).ClearContents
    Next j 


    ;o)
    1. Contributeur
      Bonjour
      cque jveux c dire a vba c:
      ;-(
      merci de ne pas employer le SMS, écriture de paresseux(se) pressé(e)

      derlig = Range("A65536").End(xlUp).Row
      Application.ScreenUpdating = False
      For cptr = 1020 To derlig
          If Not IsNumeric(Cells(cptr, "A")) Then
              Cells(cptr, "A").ClearContents
          End If
      Next
      1. Merci pour vos réponses, Le code jlai essayé il marche pas ca donne rien , c'est quoi cptr

        Je veux faire ca sur le Range(K1020:FB1625) donc commencer le code en K 1020 (ligne 1020 mais colonneK et pas A) et pas en A 1020

        MERCIII ENCORE
        1. Contributeur
          Pourtant tu as écris
          Range("A65536").End(xlUp).Row

          maintenant c'est K.... demain ce sera Z ?

          cptr c'est quoi?
          cptr c'est un compteur de boucle. si,si!!... tu l'appelles machin ou truc comme tu veux mais il est TRES déconseillé d'employer des compteurs et variables à 1 caractère comme i, j, k pour des raisons de maintenance (malgré qu'on le voit très souvent)

          alors comme tu es une grande fille tu remplaces "A" par "K" et tu mets ce que tu veux pour le compteur de boucle

          Je te signale à tout hasard que la macro que je t'avais proposé avait été testée et fonctionnait
      2. Salut,

        Essaie Is not empty aulieu de Isempty
        1. Contributeur
          un petit coup sur F1 pour vérifier avant d'envoyer ne serait pas du luxe