Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Eliminer des scories

1 réponse
Avatar
Jean-François LEGRAS
Bonjour à vous,


J'ai une macro qui à la suite d'un certain nombre d'opérations diverses me
laisse des scories dans les cellules de mon tableau et qui m'empêche de ce
fait de procéder à d'autres opérations.


Afin d'éliminer ces scories, je convertis les cellules : exemple en VB dans
la colonne B :


Range("B65535").End(xlUp).Select
Range(ActiveCell, "B5").Select
Selection.TextToColumns Destination:=Range("B5"), DataType:=xlDelimited,
_
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False,
Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=False,
FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True


Cela fonctionne très bien à partir du moment où il y a en effet une cellule
non vide => toutes les autres cellules vides le deviennent réellement
(élimination des scories).

Mais cela ne fonctionne plus dès lors que toutes les cellules de la
sélection sont vides => dans ce cas, pas de modif et j'ai toujours des
scories.


Auriez-vous la solution à mon problème ?


Précision afin que mon post soit bien clair : par scories (terme lu sur
excelabo), j'entends ceci : alors que les cellules sont vides, excel
considère qu'elles ne le sont pas. Dès lors toutes les opérations du style
End(xlUp) sont faussées.




En espérant avoir été compréhensible...

Merci beaucoup d'avance pour votre aide !!

JF

1 réponse

Avatar
francois.forcet
Salut jean François

Pourquoi ne pas augmenter ta plage d'1 cellule dans laquelle tu mets
une données que tu supprimeras au final ainsi :

Range("B65535").End(xlUp).offset(1,0) = "1"
Range("B65535").End(xlUp).Select
Range(ActiveCell, "B5").Select
Selection.TextToColumns Destination:=Range("B5"),
DataType:=xlDelimited,
_
TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:úlse,
Tab:=True, _
Semicolon:úlse, Comma:úlse, Space:úlse, Other:úlse,
FieldInfo _
:=Array(1, 1), TrailingMinusNumbers:=True

Range("B65535").End(xlUp) = ""

Je mets la valeur 1 dans la première cellule au dessous de celle
détecté comme non vide (Scorie)
je traite l'ensemble des cellules avec Scories et cette cellule
supplémentaire
Je vide la cellule dans laquelle j'ai mis 1

Celà devrait faire

Dis moi !!!!