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

variable dependant d'une autre variable

9 réponses
Avatar
gaston
Bonjour les as de vba !
je cherche =E0 r=E9soudre un probl=E8me depuis plusieurs jours=20
et je tourne en rond:
est-il possible de d=E9finir une variable en fonction d'une=20
autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule=20
dont je connais la colonne G et le numero de ligne est=20
d=E9fini par une variable r
pour rajouter =E0 mon probl=E8me, j'utilise une fonction=20
personnalis=E9e que j'appelle zoneST(x) (ou x est une=20
variable aussi !) et qui doit s'appliquer =E0 ladite cellule=20
de la colonne G
vous me suivez...?=20
ci-apr=E8s l=E0 o=F9 j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' d=E9finit la variable qui indique la plage concern=E9e par=20
la formule sous.total
Dim f As String
f =3D Range(x).Formula
' extraire la plage en question
Set zoneST =3D Range(Mid(f, InStr(f, ",") + 1, Len(f) -=20
InStr(f, ",") - 1))
=20
End Function

Sub efface()
Dim r As Long
=20
=20
Application.ScreenUpdating =3D False
On Error Resume Next
'balaye les cellules de la plage
For r =3D Range("G:G").Find("*", [G1], , , xlByRows,=20
xlPrevious).Row To 1 Step -1
If Cells(r, 7) =3D 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie pas=20
G1 ou G2 etc mais... G r !

9 réponses

Avatar
Nicolas B.
Salut gaston,

Pas testé, mais essaye ceci :
range(zoneST("G r")).EntireRow.Delete


A+
--
Nicolas B.


Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction d'une
autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite cellule
de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie pas
G1 ou G2 etc mais... G r !


Avatar
Boursicot
Rebonjour,

cells(i,j) = cellule colonne i , lignej d'ou

pas testé non plus mais devrait fonctionner
zoneST(cells(G r).address).

Cordialement.

"Nicolas B." a écrit dans le message de
news:
Salut gaston,

Pas testé, mais essaye ceci :
range(zoneST("G r")).EntireRow.Delete


A+
--
Nicolas B.


Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction d'une
autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite cellule
de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie pas
G1 ou G2 etc mais... G r !






Avatar
Boursicot
Bonjour,
J'ai aussi essayé ta fonction elle ne marche pas chez moi.


"gaston" a écrit dans le message de
news:1b13901c41f11$92c22a80$
Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction d'une
autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite cellule
de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie pas
G1 ou G2 etc mais... G r !
Avatar
Philippe.R
Bonjour Gaston,
Voici un exemple de syntaxe qui doit convenir

Sub bouge()
r = ActiveCell.Row + 2
Range("g" & r).Select
End Sub

--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"gaston" a écrit dans le message de
news:1b13901c41f11$92c22a80$
Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction d'une
autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite cellule
de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie pas
G1 ou G2 etc mais... G r !
Avatar
bipbipcoyote
normal, il ne faut pas inclure le r dans le string donc
zoneST("G r").EntireRow.Delete est mauvais, il faut écrire
zoneST("G" & r).EntireRow.Delete

r représente bien la variable et non pas le caractère "r"


-----Message d'origine-----
Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction
d'une

autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite
cellule

de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -

InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie
pas

G1 ou G2 etc mais... G r !
.



Avatar
Boursicot
Bonjour,
Regarde dans ton autre message si tu ne l'as pas déjà vu, une solution
complète à ton problème.

Cordialement.

"gaston" a écrit dans le message de
news:1b13901c41f11$92c22a80$
Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction d'une
autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite cellule
de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie pas
G1 ou G2 etc mais... G r !
Avatar
gaston
merci bibbip effectivement, maintenant cela fonctionne !!
merci aux autres egalement
-----Message d'origine-----
normal, il ne faut pas inclure le r dans le string donc
zoneST("G r").EntireRow.Delete est mauvais, il faut écrire
zoneST("G" & r).EntireRow.Delete

r représente bien la variable et non pas le caractère "r"


-----Message d'origine-----
Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction
d'une

autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite
cellule

de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -

InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie
pas

G1 ou G2 etc mais... G r !
.

.





Avatar
gaston
merci à tous !
pour ceux que cela intéresse, voici ma solution définitive:

Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G" & r).EntireRow.Delete

Next r
Dim s As Long
Application.ScreenUpdating = False
On Error Resume Next
'les lignes sous totaux étant à present en erreur puisque
' les lignes s'y rapportant ont été effacées, il faut les
'effacer à leur tour
For s = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(s, 7) = "#REF!" Then _
Rows(s).Delete
Next s
End Sub
-----Message d'origine-----
Bonjour Gaston,
Voici un exemple de syntaxe qui doit convenir

Sub bouge()
r = ActiveCell.Row + 2
Range("g" & r).Select
End Sub

--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"gaston" a écrit
dans le message de

news:1b13901c41f11$92c22a80$
Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction d'une
autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite cellule
de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie pas
G1 ou G2 etc mais... G r !


.



Avatar
Philippe.R
Merci Gaston pour le retour d'information.
Quant à l'aide, ici, c'est toujours avec plaisir.
--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"gaston" a écrit dans le message de
news:1bbc101c4212f$45afb8a0$
merci à tous !
pour ceux que cela intéresse, voici ma solution définitive:

Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G" & r).EntireRow.Delete

Next r
Dim s As Long
Application.ScreenUpdating = False
On Error Resume Next
'les lignes sous totaux étant à present en erreur puisque
' les lignes s'y rapportant ont été effacées, il faut les
'effacer à leur tour
For s = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(s, 7) = "#REF!" Then _
Rows(s).Delete
Next s
End Sub
-----Message d'origine-----
Bonjour Gaston,
Voici un exemple de syntaxe qui doit convenir

Sub bouge()
r = ActiveCell.Row + 2
Range("g" & r).Select
End Sub

--
Amicales Salutations
Retirer A_S_ pour répondre.
XL 97 / 2000 / 2002
Pour suivre le forum :
news://msnews.microsoft.com/microsoft.public.fr.excel
(Voulez-vous vous abonner ? -> Oui)

"gaston" a écrit
dans le message de

news:1b13901c41f11$92c22a80$
Bonjour les as de vba !
je cherche à résoudre un problème depuis plusieurs jours
et je tourne en rond:
est-il possible de définir une variable en fonction d'une
autre variable ?
par exemple je voudrais exprimer l'adresse d'une cellule
dont je connais la colonne G et le numero de ligne est
défini par une variable r
pour rajouter à mon problème, j'utilise une fonction
personnalisée que j'appelle zoneST(x) (ou x est une
variable aussi !) et qui doit s'appliquer à ladite cellule
de la colonne G
vous me suivez...?
ci-après là où j'en suis...et qui ne fonctionne pas
Function zoneST(x) As Range
' définit la variable qui indique la plage concernée par
la formule sous.total
Dim f As String
f = Range(x).Formula
' extraire la plage en question
Set zoneST = Range(Mid(f, InStr(f, ",") + 1, Len(f) -
InStr(f, ",") - 1))

End Function

Sub efface()
Dim r As Long


Application.ScreenUpdating = False
On Error Resume Next
'balaye les cellules de la plage
For r = Range("G:G").Find("*", [G1], , , xlByRows,
xlPrevious).Row To 1 Step -1
If Cells(r, 7) = 0 Then _
zoneST("G r").EntireRow.Delete

Next r
End Sub

c'est le zoneST("G r") qui coince car cela ne renvoie pas
G1 ou G2 etc mais... G r !


.