OVH Cloud OVH Cloud

Range.Select : A partir n° ligne et n° colomne

2 réponses
Avatar
Vader
Bonjour,

Je cherche à selectionner un champ (ex : A1:B3) pour le supprimer.

Je pensais passer par la définition d'un champ (Range.Select) puis par une
suppression de la selection (Selection.Delete). Cependant, je n'arrive pas à
donner à Range.Select sa valeur en fonction des paramètres suivants : " i "
et " j ".

Soit " i " le n° de Ligne.
Soit " j " le n° de colomne.

Les deux valeur sont incrementés de 1 à chaque Next :

For j = 1 To ActiveSheet.UsedRange.Columns.Count
For i = 1 To ActiveSheet.UsedRange.Rows.Count

La fonction test la valeur (= 0) des cellules et si elle est fausse je
demande la supression d'un champ de cellules. Dès lors, je pensais utiliser
les valeur " i " et " j " pour obtenir le champ.

Ce champ étant : (j, i - 3):(j, i + 1) sur le même modèle (avec i=5 et j=3)
: C2:C6.

Mais je n'arrive pas à définir Range.Select ...

Merci d'avance,

Antoine

2 réponses

Avatar
ThierryP
Bonjour Vader,

Tel que tu l'écris, tu mixes des types de référence
Peut-être quelque chose comme
Range(ActiveCell.Offset(j, i-3).Address,
ActiveCell.Offset(j,i+1).Address).Select

devrait le faire

@+ thierryp


Bonjour,

Je cherche à selectionner un champ (ex : A1:B3) pour le supprimer.

Je pensais passer par la définition d'un champ (Range.Select) puis par une
suppression de la selection (Selection.Delete). Cependant, je n'arrive pas à
donner à Range.Select sa valeur en fonction des paramètres suivants : " i "
et " j ".

Soit " i " le n° de Ligne.
Soit " j " le n° de colomne.

Les deux valeur sont incrementés de 1 à chaque Next :

For j = 1 To ActiveSheet.UsedRange.Columns.Count
For i = 1 To ActiveSheet.UsedRange.Rows.Count

La fonction test la valeur (= 0) des cellules et si elle est fausse je
demande la supression d'un champ de cellules. Dès lors, je pensais utiliser
les valeur " i " et " j " pour obtenir le champ.

Ce champ étant : (j, i - 3):(j, i + 1) sur le même modèle (avec i=5 et j=3)
: C2:C6.

Mais je n'arrive pas à définir Range.Select ...

Merci d'avance,

Antoine



--
@+ thierryp

Avatar
michdenis
Bonjour Vader,

As-tu essayé quelque chose dans le genre :

'---------------------------------------
Sub Effacer()

Dim A As Long, B As Integer
Dim Rg As Range

Set Rg = Worksheets("Feuil1").Range("A1:B3")

Application.ScreenUpdating = False
Application.EnableEvents = False

For A = 1 To Rg.Rows.Count
For B = 1 To Rg.Columns.Count
If Rg(A, B) = 0 Then
Rg(A, B).Clear
End If
Next
Next
Application.EnableEvents = True
Set Rg = Nothing
End Sub
'---------------------------------------


Salutations!



"Vader" a écrit dans le message de news:
Bonjour,

Je cherche à selectionner un champ (ex : A1:B3) pour le supprimer.

Je pensais passer par la définition d'un champ (Range.Select) puis par une
suppression de la selection (Selection.Delete). Cependant, je n'arrive pas à
donner à Range.Select sa valeur en fonction des paramètres suivants : " i "
et " j ".

Soit " i " le n° de Ligne.
Soit " j " le n° de colomne.

Les deux valeur sont incrementés de 1 à chaque Next :

For j = 1 To ActiveSheet.UsedRange.Columns.Count
For i = 1 To ActiveSheet.UsedRange.Rows.Count

La fonction test la valeur (= 0) des cellules et si elle est fausse je
demande la supression d'un champ de cellules. Dès lors, je pensais utiliser
les valeur " i " et " j " pour obtenir le champ.

Ce champ étant : (j, i - 3):(j, i + 1) sur le même modèle (avec i=5 et j=3)
: C2:C6.

Mais je n'arrive pas à définir Range.Select ...

Merci d'avance,

Antoine