variable dependant d'une autre variable

Le
gaston
Bonjour les as de vba !
je cherche rsoudre un problme depuis plusieurs jours
et je tourne en rond:
est-il possible de dfinir 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
dfini par une variable r
pour rajouter mon problme, j'utilise une fonction
personnalise 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-aprs l o j'en suiset qui ne fonctionne pas
Function zoneST(x) As Range
' dfinit la variable qui indique la plage concerne 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 !
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas B.
Le #1282421
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 !


Boursicot
Le #1282419
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." 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 !






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


"gaston" 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 !
Philippe.R
Le #1279222
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" 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 !
bipbipcoyote
Le #1279220
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 !
.



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

Cordialement.

"gaston" 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 !
gaston
Le #1240941
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 !
.

.





gaston
Le #1240700
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" 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 !


.



Philippe.R
Le #1241933
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" 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" 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 !


.



Publicité
Poster une réponse
Anonyme