Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

VBA boucle find dans feuille entière

  • Initiateur de la discussion Initiateur de la discussion samo.m
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

samo.m

XLDnaute Nouveau
Bonjour à tous !

Je suis nouveau sur le site et je débute en VBA. J'aurais besoin de vos lumières car je bloque sur un problème depuis quelques jours maintenant.

J'ai plusieurs tableaux dans différents fichiers excel, jusqu'à là rien d'exceptionnel ^^
Le problème est que ces tableaux ont des tailles complètement différentes et surtout énormes, cela va parfois à 1500 lignes et en colonne QNZ. De nombreuses cellules dans mes tableaux contiennent la valeur "NI" et je souhaiterais effacer le contenu de ces cellules pour qu'elles soient vierge.

J'ai commencé un peu de code (pas grand chose) mais le problème est que lorsque j'exécute la macro, cela efface une seule cellule, je dois l'exécuter autant de fois qu'il y a de cases.
Pouvez-vous donc m'aider à effectuer une boucle qu'il effacerait la cellule tant qu'il trouverait cette valeur, et qui s'arrêterait automatiquement lorsqu'il ne trouverait plus cette valeur.

Voila le code que j'avais crée:

Sub TEST1()
Cells.Find(What:="N/I").Select
Selection.Clear

End Sub

Merci pour votre aide ! 😀
 
Re : VBA boucle find dans feuille entière

Bonsoir,

Code:
Sub raz_plusieurs()
  Cells.Interior.ColorIndex = xlNone
  mot = "NI"
  Set champ = Nothing
  Set c = Cells.Find(mot, , , xlWhole)
  If Not c Is Nothing Then
      premier = c.Address
      Do
        c.Interior.ColorIndex = 4
        If champ Is Nothing Then Set champ = c Else Set champ = Union(champ, c)
        Set c = Cells.FindNext(c)
      Loop While Not c Is Nothing And c.Address <> premier
   End If
   champ.Value = Empty
End Sub


cf FIND

JB
 

Pièces jointes

Dernière édition:
Re : VBA boucle find dans feuille entière

Bonsoir samo.m, BOISGONTIER,

Un autre essai:
VB:
Sub PasdeNiNi()
  Cells.Replace What:="NI", Replacement:=Empty, LookAt:=xlWhole, MatchCase:=True
End Sub
 
Re : VBA boucle find dans feuille entière

Bonjour, samo.m, BOISGONTIER 🙂, mapomme 🙂, le Forum,

Bienvenue sur XLD, samo.m.

Autre suggestion :

Code:
Option Explicit
Sub Valeur_x_supprimer()
    Application.ScreenUpdating = False
    Cells.SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Replace What:="N/I", Replacement:="", LookAt:=xlWhole, MatchCase:=True
    Application.ScreenUpdating = True
End Sub

A bientôt 🙂
 
Re : VBA boucle find dans feuille entière

Merci à tous. J'ai opté pour la solution de DoubleZero qui fonctionne très bien ! 🙂 Cependant peut tu m'expliquer ta ligne de code principale histoire que je ne recopie pas cela bêtement sans savoir pourquoi cela fonctionne.
Cells.SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Replace What:="NA", Replacement:="", LookAt:=xlWhole, MatchCase:=True
Je ne vois pas de boucle et c'est pourquoi je ne comprends pas comment cela fonctionne.

Merci encore une fois !
 
Dernière modification par un modérateur:
Re : VBA boucle find dans feuille entière

Bonjour, samo.m, BOISGONTIER 🙂, mapomme 🙂, Papou-net 🙂, le Forum,

...expliquer ta ligne de code principale...

Cells.SpecialCells(xlCellTypeVisible).SpecialCells(xlCellTypeConstants).Replace What:="NA", Replacement:="", LookAt:=xlWhole, MatchCase:=True...

Cette ligne permet de trouver et vider l'ensemble des cellules, visibles, dont le contenu est égal à "N/I".

Les formules ne sont pas prises en compte.

Elle évite de recourir aux multiples "select" qui ne font que ralentir l'exécution de la macro.

A bientôt 🙂
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…