Sélectionner une plage avec coordonnées variables

Le
untemios
Bonjour

Dans une base de donnes d'adhrents un club, J'ai besoin de masque=
r
les lignes dont les colonnes L R sont vides (adhrents A-1 non
encore rinscrits).
Je vais la derniere ligne (VderniereLigne) et je remonte. Si la
plage L R de la ligne concerne (Vligne par ex) est vide, je veux
masquer cette ligne.
Je sais faire la boucle mais je n'arrive pas crire en VBA la plage
selectionner soit (" L,Vligne" "R,Vligne"..
J'ai crit
If range((cells(Vligne,L):cells( Vligne,R))= "" then

Mais j'ai incompatibilit de type
Avez vous une solution?
je suis sr que oui, tellement cela doit tre simplequand on sait
crire correctement
Vos réponses Page 1 / 2
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
isabelle
Le #23779151
bonjour,

If Application.CountA(range(cells(Vligne,L), cells(Vligne,R)))= 0 then

--
isabelle



Le 2011-09-21 10:56, untemios a écrit :
Bonjour

Dans une base de données d'adhérents à un club, J'ai besoin de masquer
les lignes dont les colonnes L à R sont vides (adhérents A-1 non
encore réinscrits).
Je vais à la derniere ligne (VderniereLigne) et je remonte. Si la
plage L à R de la ligne concernée (Vligne par ex) est vide, je veux
masquer cette ligne.
Je sais faire la boucle mais je n'arrive pas à écrire en VBA la plage
à selectionner soit (" L,Vligne"à "R,Vligne"..
J'ai écrit
If range((cells(Vligne,L):cells( Vligne,R))= "" then

Mais j'ai incompatibilité de type...
Avez vous une solution?
je suis sûr que oui, tellement cela doit être simple...quand on sait
écrire correctement
untemios
Le #23779181
On 21 sep, 16:59, isabelle
bonjour,

If Application.CountA(range(cells(Vligne,L), cells(Vligne,R)))= 0 then

--
isabelle

Le 2011-09-21 10:56, untemios a crit :







> Bonjour

> Dans une base de donn es d'adh rents un club, J'ai besoin de masquer
> les lignes dont les colonnes L R sont vides (adh rents A-1 non
> encore r inscrits).
> Je vais la derniere ligne (VderniereLigne) et je remonte. Si la
> plage L R de la ligne concern e (Vligne par ex) est vide, je veux
> masquer cette ligne.
> Je sais faire la boucle mais je n'arrive pas crire en VBA la plage
> selectionner soit (" L,Vligne" "R,Vligne"..
> J'ai crit
> If range((cells(Vligne,L):cells( Vligne,R))= "" then

> Mais j'ai incompatibilit de type...
> Avez vous une solution?
> je suis s r que oui, tellement cela doit tre simple...quand on sait
> crire correctement



J'essaie de suite.
Merci Isabelle
untemios
Le #23779261
On 21 sep, 16:59, isabelle
bonjour,

If Application.CountA(range(cells(Vligne,L), cells(Vligne,R)))= 0 then

--
isabelle

Le 2011-09-21 10:56, untemios a crit :


L et R sont considérés comme des variables




> Bonjour

> Dans une base de donn es d'adh rents un club, J'ai besoin de masquer
> les lignes dont les colonnes L R sont vides (adh rents A-1 non
> encore r inscrits).
> Je vais la derniere ligne (VderniereLigne) et je remonte. Si la
> plage L R de la ligne concern e (Vligne par ex) est vide, je veux
> masquer cette ligne.
> Je sais faire la boucle mais je n'arrive pas crire en VBA la plage
> selectionner soit (" L,Vligne" "R,Vligne"..
> J'ai crit
> If range((cells(Vligne,L):cells( Vligne,R))= "" then

> Mais j'ai incompatibilit de type...
> Avez vous une solution?
> je suis s r que oui, tellement cela doit tre simple...quand on sait
> crire correctement
Jacky
Le #23779251
Bonsoir,

Il ne doit pas y avoir de formule dans la zone L:R
'----------------------------
Sub jj()
With Feuil1
derlg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
For i = derlg To 2 Step -1
If Application.CountA(.Range(Cells(i, 12), Cells(i, 18))) = 0 Then
.Rows(i).Hidden = True
End If
Next
End With
End Sub
'----------------------------

--
Salutations
JJ


"untemios"
Bonjour

Dans une base de données d'adhérents à un club, J'ai besoin de masquer
les lignes dont les colonnes L à R sont vides (adhérents A-1 non
encore réinscrits).
Je vais à la derniere ligne (VderniereLigne) et je remonte. Si la
plage L à R de la ligne concernée (Vligne par ex) est vide, je veux
masquer cette ligne.
Je sais faire la boucle mais je n'arrive pas à écrire en VBA la plage
à selectionner soit (" L,Vligne"à "R,Vligne"..
J'ai écrit
If range((cells(Vligne,L):cells( Vligne,R))= "" then

Mais j'ai incompatibilité de type...
Avez vous une solution?
je suis sûr que oui, tellement cela doit être simple...quand on sait
écrire correctement
Jacky
Le #23779241
Il y a des points qui se sont perdus ;o))

Remplacer
If Application.CountA(.Range(Cells(i, 12),.Cells(i, 18))) = 0 Then
par
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) = 0 Then

--
Salutations
JJ


"Jacky"
Bonsoir,

Il ne doit pas y avoir de formule dans la zone L:R
'----------------------------
Sub jj()
With Feuil1
derlg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
For i = derlg To 2 Step -1
If Application.CountA(.Range(Cells(i, 12), Cells(i, 18))) = 0 Then
.Rows(i).Hidden = True
End If
Next
End With
End Sub
'----------------------------

--
Salutations
JJ


"untemios"
Bonjour

Dans une base de données d'adhérents à un club, J'ai besoin de masquer
les lignes dont les colonnes L à R sont vides (adhérents A-1 non
encore réinscrits).
Je vais à la derniere ligne (VderniereLigne) et je remonte. Si la
plage L à R de la ligne concernée (Vligne par ex) est vide, je veux
masquer cette ligne.
Je sais faire la boucle mais je n'arrive pas à écrire en VBA la plage
à selectionner soit (" L,Vligne"à "R,Vligne"..
J'ai écrit
If range((cells(Vligne,L):cells( Vligne,R))= "" then

Mais j'ai incompatibilité de type...
Avez vous une solution?
je suis sûr que oui, tellement cela doit être simple...quand on sait
écrire correctement

untemios
Le #23779361
On 21 sep, 17:26, "Jacky"
Il y a des points qui se sont perdus ;o))

Remplacer
If Application.CountA(.Range(Cells(i, 12),.Cells(i, 18))) = 0 Then
par
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) = 0 Then

--
Salutations
JJ

"Jacky"






> Bonsoir,

> Il ne doit pas y avoir de formule dans la zone L:R
> '----------------------------
> Sub jj()
> With Feuil1
>    derlg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
>    For i = derlg To 2 Step -1
>        If Application.CountA(.Range(Cells(i, 12), Cells(i, 18)) ) = 0 Then
>            .Rows(i).Hidden = True
>        End If
>    Next
> End With
> End Sub
> '----------------------------

> --
> Salutations
> JJ

> "untemios" >
> Bonjour

> Dans une base de donn es d'adh rents un club, J'ai besoin de masquer
> les lignes dont les colonnes L R sont vides (adh rents A-1 non
> encore r inscrits).
> Je vais la derniere ligne (VderniereLigne) et je remonte. Si la
> plage L R de la ligne concern e (Vligne par ex) est vide, je veux
> masquer cette ligne.
> Je sais faire la boucle mais je n'arrive pas crire en VBA la plage
> selectionner soit (" L,Vligne" "R,Vligne"..
> J'ai crit
> If range((cells(Vligne,L):cells( Vligne,R))= "" then

> Mais j'ai incompatibilit de type...
> Avez vous une solution?
> je suis s r que oui, tellement cela doit tre simple...quand on sait
> crire correctement



Bonjour Jacky

la macro s'arrête sur .Rows(i).Hidden= true et j'ai erreur 1004 "
impossible de definir la propriété Hidden de la classe Range"...
untemios
Le #23779341
On 21 sep, 17:26, "Jacky"
Il y a des points qui se sont perdus ;o))

Remplacer
If Application.CountA(.Range(Cells(i, 12),.Cells(i, 18))) = 0 Then
par
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) = 0 Then

--
Salutations
JJ

"Jacky"






> Bonsoir,

> Il ne doit pas y avoir de formule dans la zone L:R
> '----------------------------
> Sub jj()
> With Feuil1
>    derlg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
>    For i = derlg To 2 Step -1
>        If Application.CountA(.Range(Cells(i, 12), Cells(i, 18)) ) = 0 Then
>            .Rows(i).Hidden = True
>        End If
>    Next
> End With
> End Sub
> '----------------------------

> --
> Salutations
> JJ

> "untemios" >
> Bonjour

> Dans une base de donn es d'adh rents un club, J'ai besoin de masquer
> les lignes dont les colonnes L R sont vides (adh rents A-1 non
> encore r inscrits).
> Je vais la derniere ligne (VderniereLigne) et je remonte. Si la
> plage L R de la ligne concern e (Vligne par ex) est vide, je veux
> masquer cette ligne.
> Je sais faire la boucle mais je n'arrive pas crire en VBA la plage
> selectionner soit (" L,Vligne" "R,Vligne"..
> J'ai crit
> If range((cells(Vligne,L):cells( Vligne,R))= "" then

> Mais j'ai incompatibilit de type...
> Avez vous une solution?
> je suis s r que oui, tellement cela doit tre simple...quand on sait
> crire correctement



J'ai écrit ça
Sub MasquerAdhérentsNonRéinscrit()
Dim i
With Sheets("Base_de_données")

VDerniereligne = .Range("c50000").End(xlUp).Row
For i = VDerniereligne To 4 Step -1
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) =
0 Then

.Rows(i).Hidden = True
End If
Next


End With
End Sub
untemios
Le #23779331
On 21 sep, 17:26, "Jacky"
Il y a des points qui se sont perdus ;o))

Remplacer
If Application.CountA(.Range(Cells(i, 12),.Cells(i, 18))) = 0 Then
par
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) = 0 Then

--
Salutations
JJ

"Jacky"






> Bonsoir,

> Il ne doit pas y avoir de formule dans la zone L:R
> '----------------------------
> Sub jj()
> With Feuil1
>    derlg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
>    For i = derlg To 2 Step -1
>        If Application.CountA(.Range(Cells(i, 12), Cells(i, 18)) ) = 0 Then
>            .Rows(i).Hidden = True
>        End If
>    Next
> End With
> End Sub
> '----------------------------

> --
> Salutations
> JJ

> "untemios" >
> Bonjour

> Dans une base de donn es d'adh rents un club, J'ai besoin de masquer
> les lignes dont les colonnes L R sont vides (adh rents A-1 non
> encore r inscrits).
> Je vais la derniere ligne (VderniereLigne) et je remonte. Si la
> plage L R de la ligne concern e (Vligne par ex) est vide, je veux
> masquer cette ligne.
> Je sais faire la boucle mais je n'arrive pas crire en VBA la plage
> selectionner soit (" L,Vligne" "R,Vligne"..
> J'ai crit
> If range((cells(Vligne,L):cells( Vligne,R))= "" then

> Mais j'ai incompatibilit de type...
> Avez vous une solution?
> je suis s r que oui, tellement cela doit tre simple...quand on sait
> crire correctement



J'ai ecrit ça
Sub MasquerAdhérentsNonRéinscrit()
Dim i
With Sheets("Base_de_données")

VDerniereligne = .Range("c50000").End(xlUp).Row
For i = VDerniereligne To 4 Step -1
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) =
0 Then

.Rows(i).Hidden = True
End If
Next


End With
End Sub

et la macro s'arrête sur .Rows(i).Hidden = true et j'ai le message
'impossible de definir la propriété Hidden de la classe range"
Jacky
Le #23779651
Re....
Je n'ai pas cette erreur
http://www.cijoint.fr/cjlink.php?file=cj201109/cijHeSsO9P.xls


Ps Ma souris et moi remercions les questionneurs de répondre au-dessus des messages (c'est la coutume sur ce
forum)
--
Salutations
JJ


"untemios"
On 21 sep, 17:26, "Jacky"
Il y a des points qui se sont perdus ;o))

Remplacer
If Application.CountA(.Range(Cells(i, 12),.Cells(i, 18))) = 0 Then
par
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) = 0 Then

--
Salutations
JJ

"Jacky"






> Bonsoir,

> Il ne doit pas y avoir de formule dans la zone L:R
> '----------------------------
> Sub jj()
> With Feuil1
> derlg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
> For i = derlg To 2 Step -1
> If Application.CountA(.Range(Cells(i, 12), Cells(i, 18))) = 0 Then
> .Rows(i).Hidden = True
> End If
> Next
> End With
> End Sub
> '----------------------------

> --
> Salutations
> JJ

> "untemios" >
> Bonjour

> Dans une base de donn es d'adh rents un club, J'ai besoin de masquer
> les lignes dont les colonnes L R sont vides (adh rents A-1 non
> encore r inscrits).
> Je vais la derniere ligne (VderniereLigne) et je remonte. Si la
> plage L R de la ligne concern e (Vligne par ex) est vide, je veux
> masquer cette ligne.
> Je sais faire la boucle mais je n'arrive pas crire en VBA la plage
> selectionner soit (" L,Vligne" "R,Vligne"..
> J'ai crit
> If range((cells(Vligne,L):cells( Vligne,R))= "" then

> Mais j'ai incompatibilit de type...
> Avez vous une solution?
> je suis s r que oui, tellement cela doit tre simple...quand on sait
> crire correctement



J'ai ecrit ça
Sub MasquerAdhérentsNonRéinscrit()
Dim i
With Sheets("Base_de_données")

VDerniereligne = .Range("c50000").End(xlUp).Row
For i = VDerniereligne To 4 Step -1
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) 0 Then

.Rows(i).Hidden = True
End If
Next


End With
End Sub

et la macro s'arrête sur .Rows(i).Hidden = true et j'ai le message
'impossible de definir la propriété Hidden de la classe range"
Jacquouille
Le #23781931
C'est-t-y pas qu'il en manque encore un?
Enfin, mieux vaut des points perdus que des coups de pieds au cul. -)


Jacquouille

" Le vin est au repas ce que le parfum est à la femme."
"Jacky" a écrit dans le message de groupe de discussion :
j5cvmo$sj4$

Il y a des points qui se sont perdus ;o))

Remplacer
If Application.CountA(.Range(Cells(i, 12),.Cells(i, 18))) = 0 Then
par
If Application.CountA(.Range(.Cells(i, 12), .Cells(i, 18))) = 0 Then

--
Salutations
JJ


"Jacky" j5cv8i$r5n$
Bonsoir,

Il ne doit pas y avoir de formule dans la zone L:R
'----------------------------
Sub jj()
With Feuil1
derlg = .Cells.Find("*", , , , xlByRows, xlPrevious).Row
For i = derlg To 2 Step -1
If Application.CountA(.Range(Cells(i, 12), Cells(i, 18))) = 0 Then
.Rows(i).Hidden = True
End If
Next
End With
End Sub
'----------------------------

--
Salutations
JJ


"untemios"
Bonjour

Dans une base de données d'adhérents à un club, J'ai besoin de masquer
les lignes dont les colonnes L à R sont vides (adhérents A-1 non
encore réinscrits).
Je vais à la derniere ligne (VderniereLigne) et je remonte. Si la
plage L à R de la ligne concernée (Vligne par ex) est vide, je veux
masquer cette ligne.
Je sais faire la boucle mais je n'arrive pas à écrire en VBA la plage
à selectionner soit (" L,Vligne"à "R,Vligne"..
J'ai écrit
If range((cells(Vligne,L):cells( Vligne,R))= "" then

Mais j'ai incompatibilité de type...
Avez vous une solution?
je suis sûr que oui, tellement cela doit être simple...quand on sait
écrire correctement

Publicité
Poster une réponse
Anonyme