Sélectionner une plage avec coordonnées variables

Le
untemios
Bonjour

Dans une base de données d'adhérents à un club, J'ai besoin de masque=
r
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 simplequand on sait
écrire correctement
Vidéos High-Tech et Jeu Vidéo
Téléchargements
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