[Excel] Définir plage à partir de variables
Résolu
xjl
-
xjl Messages postés 232 Date d'inscription Statut Membre Dernière intervention -
xjl Messages postés 232 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je cherche à définir une plage à partir de variable, c'est à dire faire qqchose du genre:
Range("Cells(a,b):Cells(c,d)")
Bien évidemment, cette syntaxe ne fonctionne pas...
Est-ce que quelqu'un saurait comment je peux faire svp ?
Merci d'avance
je cherche à définir une plage à partir de variable, c'est à dire faire qqchose du genre:
Range("Cells(a,b):Cells(c,d)")
Bien évidemment, cette syntaxe ne fonctionne pas...
Est-ce que quelqu'un saurait comment je peux faire svp ?
Merci d'avance
A voir également:
- [Excel] Définir plage à partir de variables
- Liste déroulante excel - Guide
- Creer un groupe whatsapp a partir d'un autre groupe - Guide
- Word et excel gratuit - Guide
- Déplacer colonne excel - Guide
- Aller à la ligne excel - Guide
2 réponses
Je précise un peu ma question:
y1 = 500 + m
y2 = 500 + m
x1 = 2
x2 = 2 + n
For i = 0 To m
If v = Cells(ligne + i, 1).Value Then
With Cells(l, c + 1).Validation
.Add xlValidateList, xlValidAlertStop, xlBetween, Cells(y1, x1), Cells(y2, x2)
.InCellDropdown = True
End With
End If
Next i
J'ai essayé ça aussi, ça ne fonctionne pas...
Comment pourrais-je faire svp ?
y1 = 500 + m
y2 = 500 + m
x1 = 2
x2 = 2 + n
For i = 0 To m
If v = Cells(ligne + i, 1).Value Then
With Cells(l, c + 1).Validation
.Add xlValidateList, xlValidAlertStop, xlBetween, Cells(y1, x1), Cells(y2, x2)
.InCellDropdown = True
End With
End If
Next i
J'ai essayé ça aussi, ça ne fonctionne pas...
Comment pourrais-je faire svp ?
bonjour
si tu remplaces ton instruction :
.Add xlValidateList, xlValidAlertStop, xlBetween, Formula1:=Range(Cells(y1, x1), Cells(y2, x2))
par celle-ci, cela devrait fonctionner :
.Add xlValidateList, xlValidAlertStop, xlBetween, Formula1:="=" & Chr(x1 + 64) & y1 & ":" & Chr(x2 + 64) & y2
car "Formula1" attend une syntaxe du type "B25:D25"
si tu remplaces ton instruction :
.Add xlValidateList, xlValidAlertStop, xlBetween, Formula1:=Range(Cells(y1, x1), Cells(y2, x2))
par celle-ci, cela devrait fonctionner :
.Add xlValidateList, xlValidAlertStop, xlBetween, Formula1:="=" & Chr(x1 + 64) & y1 & ":" & Chr(x2 + 64) & y2
car "Formula1" attend une syntaxe du type "B25:D25"
Pour accéder à des cellules il y a deux façon, soit
celle que tu connais, soit celle que t'as essayé en te trompant
un petit peu:
Pour une plage c'est simple:
Range(cells(row1,col1),cells(row2,col2)).select
Tu peux alors sélectionner un morceau colonne, un morceau de ligne ou
même un tableau
VOilà.
With Cells(l, c + 1).Validation
.Add xlValidateList, xlValidAlertStop, xlEqual, "=Range(Cells(y1, x1), Cells(y2, x2))"
.InCellDropdown = True
End With
Faut-il xlEqual ou xlBetween, et surtout, comment faire référence correctement à la plage voulue dans ce cas précis ?
Je désespère là... ;-)
If v = Cells(ligne + i, 1).Value Then
vaList = VBA.Array(Cells(y1, x1), Cells(y2, x2))
With Cells(l, c + 1).Validation
.Delete
.Add xlValidateList, xlValidAlertStop, xlBetween, Formula1:=vaList
.InCellDropdown = True
End With
End If
pour ceux qui auraient encore un peu de mal à cerner le problème, voici un petit fichier pour mieux comprendre le but de la macro:
https://www.cjoint.com/?dDi1e4CMjm
Merci à tous pour vos efforts...