Définir une plage dynamiquement
Le
Apitos

Bonsoir à tous,
J'ai un problème pour définir une plage dynamiquement en allant de haut=
en bas.
Le souci c'est qu'il y a une seule ligne [I2]:
Range("I2:I" & [I2].End(xlDown).Row).Name = "reDébit"
Je sais le faire de bas en haut (End(xlUp)) mais je le fais ainsi parce que=
j'ai un autre tableau qui m'enpêche d'utiliser la deuxième façon.
Une solution ?
Merci d'avance.
J'ai un problème pour définir une plage dynamiquement en allant de haut=
en bas.
Le souci c'est qu'il y a une seule ligne [I2]:
Range("I2:I" & [I2].End(xlDown).Row).Name = "reDébit"
Je sais le faire de bas en haut (End(xlUp)) mais je le fais ainsi parce que=
j'ai un autre tableau qui m'enpêche d'utiliser la deuxième façon.
Une solution ?
Merci d'avance.
tu peut utiliser End(xlUp) à partir de la ligne au dessus du 2ème tableau
--
isabelle
Le 2012-04-11 16:28, Apitos a écrit :
Pas sûr de bien voir la situation mais un truc du genre:
With [i2]
If len(.offset(1,0))>0 then
Range("I2:I" & .End(xlDown).Row).Name = "reDébit"
else
.Name = "reDébit"
end if
end with
--
LSteph
"Apitos" news:
Bonsoir à tous,
J'ai un problème pour définir une plage dynamiquement en allant de haut en
bas.
Le souci c'est qu'il y a une seule ligne [I2]:
Range("I2:I" & [I2].End(xlDown).Row).Name = "reDébit"
Je sais le faire de bas en haut (End(xlUp)) mais je le fais ainsi parce que
j'ai un autre tableau qui m'enpêche d'utiliser la deuxième façon.
Une solution ?
Merci d'avance.
Ca marche.
Et voila le code que j'utilise :
'-- Définition des plages 'reDébit', 'reDébit_Date' et 'reDébit_Nom s' dans le tableau re-Débit
With [I2]
If Len(.Offset(1, 0)) > 0 Then
Range("I2:I" & .End(xlDown).Row).Name = "reDébit"
Range("K2:K" & [K2].End(xlDown).Row).Name = "reDébit_Date"
Range("J2:J" & [J2].End(xlDown).Row).Name = "reDébit_Noms"
Else
.Name = "reDébit"
[K2].Name = "reDébit_Date"
[J2].Name = "reDébit_Noms"
End If
End With
Merci.
mTab = Array("reDébit", "reDébit_Date", "reDébit_Noms")
For x = 1 To [I2:k2].Cells.Count
With [I2:k2].Cells(x)
If Len(.Offset(1, 0)) > 0 Then
Range(.Address, .End(xlDown).Address).Name = mTab(x - 1)
Else
.Name = mTab(x - 1)
End If
End With
Next
'LSteph ;-)
Et pour ce code, peut-on le reduire ?
'-- Définition des plages 'Débit' et 'Débit_Date' dans le tableau D ébit
Dim dbTab(), x As Long
dbTab = Array("Débit", "Débit_Date", "Débit_Noms")
For x = 1 To [A2:C2].Cells.Count
With [A2:C2].Cells(x)
If Len(.Offset(1, 0)) > 0 Then
Range(.Address, .End(xlDown).Address).Name = dbTab(x - 1)
Else
.Name = dbTab(x - 1)
End If
End With
Next
'-- Définition des plages 'reDébit', 'reDébit_Date' et 'reDébit_Nom s' dans le tableau re-Débit
Dim re_dbTab()
re_dbTab = Array("reDébit", "reDébit_Date", "reDébit_Noms")
For x = 1 To [I2:k2].Cells.Count
With [I2:k2].Cells(x)
If Len(.Offset(1, 0)) > 0 Then
Range(.Address, .End(xlDown).Address).Name = re_dbTab(x - 1)
Else
.Name = re_dbTab(x - 1)
End If
End With
Next
Merci
Dim dbTab(), c As Range, myPlg As Range, x As Long
dbTab = Array("Débit", "Débit_Date", "Débit_Noms", "reDébit", "re Débit_Date", "reDébit_Noms")
Set myPlg = Union([A2:C2], [I2:k2])
x = 0
For Each c In myPlg.Cells
If Len(c.Offset(1, 0)) > 0 Then
Range(c.Address, c.End(xlDown).Address).Name = dbTab(x)
Else
c.Name = dbTab(x)
End If
x = x + 1
Next
Set myPlg = Nothing
'LSteph
Le vendredi 13 avril 2012 14:07:33 UTC+2, Apitos a écrit :
Ca marche trés bien.
Au plaisir de te rencontrer.
Cordialement
Apitos.