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

VBA : Cellules considérées NON VIDE

1 réponse
Avatar
Francis B
Voici la situation :
Du texte placé en cellule A13:A50 contient des espaces à gauche. Certaines
de ces cellules sont vides.
Une macro écrit une formule en B13:B50. Ceci a pour but de supprimer les
espaces contenus dans mes données.
Le résultat étant ensuite copié et par collage special collé en A13:A50.
En C13:C50, j'effectue un test qui doit m'indiquer quelles sont les cellules
vides de la plage A13:A50.
Les cellules de la plage A13:A50 qui initialement ne contenaient rien ne
sont plus considérées comme vides et ce aprés avoir effectué le collage
special.
Voici la macro :

Range("B13").Select
ActiveCell.FormulaR1C1 = "=TRIM(RC[-1])"
Selection.AutoFill Destination:=Range("B13:B50")
Range("B13:B50").Select
Selection.Copy
Range("A13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:=False, Transpose:=False

J'ai pu résoudre le problème en changeant mon test : j'utilise
NBCRAR(A13)="" au lieu de ESTVIDE(A13). Mais cela ne me convient pas.

Si quelqu'un me m'aider et m'expliquer pourquoi les cellules ne sont pas
considérées comme vides.....
Merci d'avance.
Francis
REMARQUE : En se placant en mode modification(DOUBLE CLIC dans la cellule)
dans une des cellules vides de A13:A50 et en validant, elles est ainsi
considérée comme vide.

1 réponse

Avatar
Herdet
Bonsoir françis,
Un peu compliquée ton affaire.
Si tu veux juste supprimer tous les espaces de tous les textes de la plage :
Sub Purge()
For Each a In Range("B13:B50")
a.Value = Replace(a.Value, " ", "")
Next
End Sub
... su tu veux supprimer les espaces en trop (equivalent VBA de SUPPRESPACE)
Sub Purge()
For Each a In Range("B13:B50")
a.Value = Application.WorksheetFunction.Trim(a.Value)
Next
End Sub

Cordialement
Robert


"Francis B" a écrit dans le message de news:
%
Voici la situation :
Du texte placé en cellule A13:A50 contient des espaces à gauche. Certaines
de ces cellules sont vides.
Une macro écrit une formule en B13:B50. Ceci a pour but de supprimer les
espaces contenus dans mes données.
Le résultat étant ensuite copié et par collage special collé en A13:A50.
En C13:C50, j'effectue un test qui doit m'indiquer quelles sont les
cellules
vides de la plage A13:A50.
Les cellules de la plage A13:A50 qui initialement ne contenaient rien ne
sont plus considérées comme vides et ce aprés avoir effectué le collage
special.
Voici la macro :

Range("B13").Select
ActiveCell.FormulaR1C1 = "=TRIM(RC[-1])"
Selection.AutoFill Destination:=Range("B13:B50")
Range("B13:B50").Select
Selection.Copy
Range("A13").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone,
SkipBlanks _
:úlse, Transpose:úlse

J'ai pu résoudre le problème en changeant mon test : j'utilise
NBCRAR(A13)="" au lieu de ESTVIDE(A13). Mais cela ne me convient pas.

Si quelqu'un me m'aider et m'expliquer pourquoi les cellules ne sont pas
considérées comme vides.....
Merci d'avance.
Francis
REMARQUE : En se placant en mode modification(DOUBLE CLIC dans la cellule)
dans une des cellules vides de A13:A50 et en validant, elles est ainsi
considérée comme vide.