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

Formule VBA à adapter

9 réponses
Avatar
Pierre F.
Bonjour ou bonsoir à toutes et tous;

J'ai la formule
Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents

qui me permet d'effacer les lignes si les cellule de la colonne c sont
vides.

Je souhaiterais, plutôt que des lignes entières, effacer une plage
seulement; pour être précis, la plage A:K.

Est-ce possible ?
Si oui, comment ?

Merci pour votre aide.

Cordialement,
Pierre F.

9 réponses

Avatar
Daniel.C
Bonjour.
Intersect([A:K],
Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow).ClearContents
Daniel

Pierre F. a écrit :
Bonjour ou bonsoir à toutes et tous;

J'ai la formule
Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents

qui me permet d'effacer les lignes si les cellule de la colonne c sont
vides.

Je souhaiterais, plutôt que des lignes entières, effacer une plage
seulement; pour être précis, la plage A:K.

Est-ce possible ?
Si oui, comment ?

Merci pour votre aide.

Cordialement,
Pierre F.


Avatar
garnote
Salut Pierre,

Une suggestion :

Sub Efface()
For Each c In [c3:c100]
If IsEmpty(c) Then
L = c.Row
Range(Cells(L, 1), Cells(L, 2)).ClearContents
Range(Cells(L, 4), Cells(L, 11)).ClearContents
End If
Next c
End Sub

Est-ce le résultat que tu attends ?


Serge




"Pierre F." a écrit dans le message de news: 34b46$48fe18ca$55da2eb8$
Bonjour ou bonsoir à toutes et tous;

J'ai la formule
Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents

qui me permet d'effacer les lignes si les cellule de la colonne c sont vides.

Je souhaiterais, plutôt que des lignes entières, effacer une plage seulement; pour être précis, la plage A:K.

Est-ce possible ?
Si oui, comment ?

Merci pour votre aide.

Cordialement,
Pierre F.


Avatar
JPMonnier
Bonsoir,
Essaie cette proc
Sub Clear()
For Each N In [c3:c300]
If IsEmpty(N) Then
Range(N.Offset(0, -2), N.Offset(0, 8)).ClearContents
End If
Next
End Sub
--
Cordialement

"Pierre F." a écrit dans le message de
news:34b46$48fe18ca$55da2eb8$
Bonjour ou bonsoir à toutes et tous;

J'ai la formule
Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents

qui me permet d'effacer les lignes si les cellule de la colonne c sont
vides.

Je souhaiterais, plutôt que des lignes entières, effacer une plage
seulement; pour être précis, la plage A:K.

Est-ce possible ?
Si oui, comment ?

Merci pour votre aide.

Cordialement,
Pierre F.


Avatar
Pierre F.
garnote a écrit :

Sub Efface()
For Each c In [c3:c100]
If IsEmpty(c) Then
L = c.Row
Range(Cells(L, 1), Cells(L, 2)).ClearContents
Range(Cells(L, 4), Cells(L, 11)).ClearContents
End If
Next c
End Sub

Est-ce le résultat que tu attends ?




Parfaitement; ça roule comme ça.
Merci!

Cordialement,
Pierre F.
Avatar
Pierre F.
Daniel.C a écrit :
Bonjour.
Intersect([A:K],
Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow).ClearContents
Daniel



Super, cette solution fonctionne très bien.
Merci !

J'avais un problème et maintenant j'ai deux solutions :-)

Cordialement,
Pierre F.
Avatar
garnote
Quelle élégance ;-)
Moi et mes crisses de boucles ;-(


Serge

"Daniel.C" a écrit dans le message de news: %
Bonjour.
Intersect([A:K], Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow).ClearContents
Daniel

Pierre F. a écrit :
Bonjour ou bonsoir à toutes et tous;

J'ai la formule
Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents

qui me permet d'effacer les lignes si les cellule de la colonne c sont vides.

Je souhaiterais, plutôt que des lignes entières, effacer une plage seulement; pour être précis, la plage A:K.

Est-ce possible ?
Si oui, comment ?

Merci pour votre aide.

Cordialement,
Pierre F.




Avatar
Pierre F.
JPMonnier a écrit :

Essaie cette proc
Sub Clear()
For Each N In [c3:c300]
If IsEmpty(N) Then
Range(N.Offset(0, -2), N.Offset(0, 8)).ClearContents
End If
Next
End Sub



Génial! Ça fonctionne très bien. Merci!

J'avais un problème et maintenant j'ai trois solutions :-)

Cordialement,
Pierre F.
Avatar
LSteph
Bonjour,

Dim r As Long
For r = 3 To 100
If IsEmpty(Cells(r, 3)) Then Intersect(Rows(r), [a:k]).ClearContents
Next

'lSteph

Pierre F. a écrit :
Bonjour ou bonsoir à toutes et tous;

J'ai la formule
Range("c3:c100").SpecialCells(xlCellTypeBlanks).EntireRow.ClearContents

qui me permet d'effacer les lignes si les cellule de la colonne c sont
vides.

Je souhaiterais, plutôt que des lignes entières, effacer une plage
seulement; pour être précis, la plage A:K.

Est-ce possible ?
Si oui, comment ?

Merci pour votre aide.

Cordialement,
Pierre F.


Avatar
Pierre F.
LSteph a écrit :

Dim r As Long
For r = 3 To 100
If IsEmpty(Cells(r, 3)) Then Intersect(Rows(r), [a:k]).ClearContents
Next



Merci à toi aussi.
J'ai à peine le temps de tester et d'avancer dans mon projet que les
réponses fusent encore et encore :-)

Quel feu d'artifices!

Cordialement,
Pierre F.