Remplacement de toute cellules non vide par une même valeur

Kiriko

XLDnaute Occasionnel
Bonjour,
Je cherche un système (par macro ?) qui permettrait de remplacer toute cellule non vide d'une plage donnée par une même valeur ("X").
La plage pouvant comporter jusqu'à 15000 cellules (dont souvent 2 à 3% [soit 500 max] seulement peuvent être non vides.
Si ça peut accélérer l'affaire, ces cellules à "remplacer" contiennent exclusivement des valeurs numérique (différentes de zéro).
Est-il possible de trouver une solution qui ne soit pas trop longue en traitement ?
Je pense qu'il n'est pas utile de joindre un fichier, mais dites-moi si c'est nécessaire, je le posterais.
Merci par avance !
 

Staple1600

XLDnaute Barbatruc
Re : Remplacement de toute cellules non vide par une même valeur

Re

Kiriko
Faute de fichier exemple, je suis pas sur du résultat mais testes ceci.
Code:
Sub TestChrisIII()
'j'ai changé les adresses des cellules pour commodité de test
Dim MaCell As Range
Set MaCell = [A4]
If IsEmpty(MaCell) Then
MaCell = 0
With Range("A450").RowDifferences(MaCell)
 .Value = "X"
End With
End If
Range("A4").Select
End Sub
 
Dernière édition:

Kiriko

XLDnaute Occasionnel
Re : Remplacement de toute cellules non vide par une même valeur

Encore merci Staple1600 pour ton intérêt et ton aide...
Si, j'ai bien posté un fichier test en message #5 comme demandé...
Je n'arrive pas à adapter ton code...
En bidouillant et farfouillant sur le net, à la lumière de la proposition de Chris, j'arrive à ça :
Code:
Sub ChrisV()
'
    Range("BK4:DG2000").Replace What:="0", Replacement:="", LookAt:=xlWhole, _
        SearchOrder:=xlByRows, MatchCase:=True, SearchFormat:=False, _
        ReplaceFormat:=False
    With Range("BK4:DG2000").SpecialCells(xlCellTypeConstants, xlNumbers)
    .Value = "X":
End With
Range("BK4").Select
End Sub
car en fait, beaucoup de mes cellules "vides" sont remplies de (0).
Mais le "replace" ralenti pas mal le traitement....
Ta dernière proposition ne fonctionne pas chez moi...
Merci encore !
 
Dernière édition:

Staple1600

XLDnaute Barbatruc
Re : Remplacement de toute cellules non vide par une même valeur

Re, salut job75

Sur mon PC, c'est immédiat avec celle-ci
Code:
Sub TestChrisVI()
Dim MaCell As Range: Set MaCell = [BK4]
 With Application
 .ScreenUpdating = False
 .Calculation = xlCalculationManual
 With Range("BK4:DG2000").RowDifferences(MaCell)
  .Value = "X"
 End With
Range("BK4").Select
.ScreenUpdating = True
.Calculation = xlCalculationAutomatic
End With
End Sub
 

Staple1600

XLDnaute Barbatruc
Re : Remplacement de toute cellules non vide par une même valeur

Re

Si ton but est de remplacer par un X toutes les cellules non vides de ta plage, alors cela suffirait, non?
(PS: Je suis pas sur d'avoir compris ce que tu cherches à faire exactement :eek:)
Code:
 Sub Test()
On Error Resume Next
With Range("BK4:DG2000").SpecialCells(xlCellTypeConstants).Value = "X": End With
End Sub
 
Dernière édition:

Kiriko

XLDnaute Occasionnel
Re : Remplacement de toute cellules non vide par une même valeur

En fait, si il y a une valeur dans la cellule BK4, toute la ligne 4 est remplacée par des "X" (de BK à DG)..
Mais effectivement, pas de soucis si la cellule BK4=0 (même soucis si elle est vraiment vide ou si elle contient une valeur azutre que 0)....
 

Kiriko

XLDnaute Occasionnel
Re : Remplacement de toute cellules non vide par une même valeur

Merci encore de votre intérêt,
Bonjour job75. Ta dernière proposition n'est pas adaptée, j'ai plusieurs cellules qui ont 0 en valeur et du coup elles sont remplacées aussi par les "X". Je précise que les 0 peuvent être "supprimés", pas d'importance pour moi...
Staple1600, ton tout dernier code ne fonctionne pas 'incompatibilité de type...)

du coup,
Code:
Range("BK4:DG2000").Replace "0", "", xlPart
Range("BK4:DG2000").Replace "?*", "X", xlPart
fonctionne mais c'est un peu lent...

EDIT
J'ai repris la variante de Chris
Code:
Sub TestChrisII()
With Range("BJ4:DG2000").RowDifferences([BJ4])
    .Value = "X":
End With
Range("BK4").Select
 End Sub
en partant une colonne plus "tôt", mais je dois avant remplir cette colonne de "0" à la main pour que cela fonctionne...
 
Dernière édition:

Kiriko

XLDnaute Occasionnel
Re : Remplacement de toute cellules non vide par une même valeur

Merci beaucoup, merci à tous !
La solution la plus rapide pour moi étant la variante de chris évoquée dans mon dernier post, bien qu'il faille que je remplisse de 0 la colonne BJ...
Avec toute ma reconnaissance à vous tous,
Cordialement
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
312 321
Messages
2 087 266
Membres
103 502
dernier inscrit
talebafia