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

Utilisation de la fonction CurrentRegion

7 réponses
Avatar
dan
Bonjour à tous,

Pour compter le nombre de LIGNES non vides d'une plage de cellules,
j'utilise le code suivant :

NbLignes = cells(1,1).CurrentRegion.Rows.Count

La plupart du temps, s'il n'y a qu'une seule cellule non vide, Nblignes est
égal à 1.

En faisant des tests, le même code peut renvoyer la valeur correspondant aux
cellules non vides mais en comptant le nombre de COLONNES.
Comment celà peut'il s'expliquer et comment résoudre le problème ?
Ou est l'erreur dans mon code (je veux éviter de sélectionner le nombre de
ligne pluis de les compter).

Merci d'avance à tous.


--
dan

7 réponses

Avatar
michdenis
| NbLignes = cells(1,1).CurrentRegion.Rows.Count
*** Impossible que cela puisse te donner le nombre de colonnes
de ta plage sauf si le nombre de colonnes égale le nombre
de ligne

Utilise Cjoint.com pour rendre ton fichier disponible ici.

(Ne publie que la partie de ton fichier démontrant ton observation !)



"dan" a écrit dans le message de news:

Bonjour à tous,

Pour compter le nombre de LIGNES non vides d'une plage de cellules,
j'utilise le code suivant :

NbLignes = cells(1,1).CurrentRegion.Rows.Count

La plupart du temps, s'il n'y a qu'une seule cellule non vide, Nblignes est
égal à 1.

En faisant des tests, le même code peut renvoyer la valeur correspondant aux
cellules non vides mais en comptant le nombre de COLONNES.
Comment celà peut'il s'expliquer et comment résoudre le problème ?
Ou est l'erreur dans mon code (je veux éviter de sélectionner le nombre de
ligne pluis de les compter).

Merci d'avance à tous.


--
dan
Avatar
dan
Merci pour ta réponse mais je ne peux pas joindre le fichier car je ne suis
pas sur mon ordi habituel.

C'est pourtant ce qui m'est arrivé.

Ligne1 = col1, col2, Col3, Col4
NbLignes = cells(1,1).CurrentRegion.Rows.Count = 4

Je précise que la ligne 2 était vierge de toute donnée.

Sinon le même exemple tout à l'heure, le code ci dessous a donné la somme
des lignes et des colonnes des cellules non vides.
J'ai l'impression que ce code ne fonctionne que quand les cellules à droite
sont vides.


--
dan


"michdenis" a écrit :

| NbLignes = cells(1,1).CurrentRegion.Rows.Count
*** Impossible que cela puisse te donner le nombre de colonnes
de ta plage sauf si le nombre de colonnes égale le nombre
de ligne

Utilise Cjoint.com pour rendre ton fichier disponible ici.

(Ne publie que la partie de ton fichier démontrant ton observation !)



"dan" a écrit dans le message de news:

Bonjour à tous,

Pour compter le nombre de LIGNES non vides d'une plage de cellules,
j'utilise le code suivant :

NbLignes = cells(1,1).CurrentRegion.Rows.Count

La plupart du temps, s'il n'y a qu'une seule cellule non vide, Nblignes est
égal à 1.

En faisant des tests, le même code peut renvoyer la valeur correspondant aux
cellules non vides mais en comptant le nombre de COLONNES.
Comment celà peut'il s'expliquer et comment résoudre le problème ?
Ou est l'erreur dans mon code (je veux éviter de sélectionner le nombre de
ligne pluis de les compter).

Merci d'avance à tous.


--
dan




Avatar
Francois L
dan a écrit :

Bonjour,

Je ne parviens pas à reproduire cette erreur... es-tu bien certain que
ta ligne 2 ne contient pas un caractère non visible ?

--
François L


Merci pour ta réponse mais je ne peux pas joindre le fichier car je ne suis
pas sur mon ordi habituel.

C'est pourtant ce qui m'est arrivé.

Ligne1 = col1, col2, Col3, Col4
NbLignes = cells(1,1).CurrentRegion.Rows.Count = 4

Je précise que la ligne 2 était vierge de toute donnée.

Sinon le même exemple tout à l'heure, le code ci dessous a donné la somme
des lignes et des colonnes des cellules non vides.
J'ai l'impression que ce code ne fonctionne que quand les cellules à droite
sont vides.




Avatar
Modeste
Bonsour® dan avec ferveur ;o))) vous nous disiez :

NbLignes = cells(1,1).CurrentRegion.Rows.Count


Je précise que la ligne 2 était vierge de toute donnée.
La plupart du temps, s'il n'y a qu'une seule cellule non vide,
Nblignes est égal à 1




ce qui est tout a fait normal dans ce cas !!!
Cette propriété renvoie un objet Range qui représente la zone en cours. Celle-ci est une plage limitée par toute combinaison de lignes et de colonnes vides. En lecture seule.

visualisez la plage CurrentRegion !!!!!

Sub zaza()
Dim xx As Range
Set xx = Selection.CurrentRegion
xx.Select
MsgBox xx.Rows.Count & " ligne(s)" _
& Chr(10) & xx.Columns.Count & " colonne(s)" _
& Chr(10) & xx.Cells.Count & " cellule(s)" _
& Chr(10) & "dont " & Evaluate("=CountA(" & xx.Address & ")") & " documentées", _
vbInformation, _
"A propos de CurrentRegion" & xx.Address
End Sub




?????

--
@+
;o)))
Avatar
Philippe.R
Bonjour,
Dans quel module se trouve le code ?
Un module d'une autre feuille, par hasard ?
--
Avec plaisir
http://dj.joss.free.fr/trombine.htm
http://jacxl.free.fr/mpfe/trombino.html
Philippe.R
Pour se connecter au forum :
http://www.excelabo.net/mpfe/connexion.php
News://news.microsoft.com/microsoft.public.fr.excel
"dan" a écrit dans le message de
news:
Merci pour ta réponse mais je ne peux pas joindre le fichier car je ne
suis
pas sur mon ordi habituel.

C'est pourtant ce qui m'est arrivé.

Ligne1 = col1, col2, Col3, Col4
NbLignes = cells(1,1).CurrentRegion.Rows.Count = 4

Je précise que la ligne 2 était vierge de toute donnée.

Sinon le même exemple tout à l'heure, le code ci dessous a donné la somme
des lignes et des colonnes des cellules non vides.
J'ai l'impression que ce code ne fonctionne que quand les cellules à
droite
sont vides.


--
dan


"michdenis" a écrit :

| NbLignes = cells(1,1).CurrentRegion.Rows.Count
*** Impossible que cela puisse te donner le nombre de colonnes
de ta plage sauf si le nombre de colonnes égale le nombre
de ligne

Utilise Cjoint.com pour rendre ton fichier disponible ici.

(Ne publie que la partie de ton fichier démontrant ton observation !)



"dan" a écrit dans le message de news:

Bonjour à tous,

Pour compter le nombre de LIGNES non vides d'une plage de cellules,
j'utilise le code suivant :

NbLignes = cells(1,1).CurrentRegion.Rows.Count

La plupart du temps, s'il n'y a qu'une seule cellule non vide, Nblignes
est
égal à 1.

En faisant des tests, le même code peut renvoyer la valeur correspondant
aux
cellules non vides mais en comptant le nombre de COLONNES.
Comment celà peut'il s'expliquer et comment résoudre le problème ?
Ou est l'erreur dans mon code (je veux éviter de sélectionner le nombre
de
ligne pluis de les compter).

Merci d'avance à tous.


--
dan






Avatar
lSteph
Bonjour,

dans ce cas reviens qd il sera disponible.
Sinon si tu ne peux tester à l'appui des solutions proposées essaie de
reproduire les exemples sur un nouvea...

@+

On 28 juil, 13:20, dan wrote:
Merci pour ta réponse mais je ne peux pas joindre le fichier car je ne suis
pas sur mon ordi habituel.

C'est pourtant ce qui m'est arrivé.

Ligne1 = col1, col2, Col3, Col4
NbLignes = cells(1,1).CurrentRegion.Rows.Count = 4

Je précise que la ligne 2 était vierge de toute donnée.

Sinon le même exemple tout à l'heure, le code ci dessous a donné la somme
des lignes et des colonnes des cellules non vides.
J'ai l'impression que ce code ne fonctionne que quand les cellules à dr oite
sont vides.

--
dan

"michdenis" a écrit :

> | NbLignes = cells(1,1).CurrentRegion.Rows.Count
> *** Impossible que cela puisse te donner le nombre de colonnes
> de ta plage sauf si le nombre de colonnes égale le nombre
> de ligne

> Utilise Cjoint.com pour rendre ton fichier disponible ici.

> (Ne publie que la partie de ton fichier démontrant ton observation !)

> "dan" a écrit dans le message de new s:
>
> Bonjour à tous,

> Pour compter le nombre de LIGNES non vides d'une plage de cellules,
> j'utilise le code suivant :

> NbLignes = cells(1,1).CurrentRegion.Rows.Count

> La plupart du temps, s'il n'y a qu'une seule cellule non vide, Nblignes est
> égal à 1.

> En faisant des tests, le même code peut renvoyer la valeur correspond ant aux
> cellules non vides mais en comptant le nombre de COLONNES.
> Comment celà peut'il s'expliquer et comment résoudre le problème ?
> Ou est l'erreur dans mon code (je veux éviter de sélectionner le no mbre de
> ligne pluis de les compter).

> Merci d'avance à tous.

> --
> dan


Avatar
dan
Oui, sur l'ordi que j'utilise actuellement, il n'y a pas d'incohérence.
Sur le mien en revanche, ça déconne à pleins tubes.

C'est pas un problème d'options ?

--
dan


"lSteph" a écrit :

Bonjour,

dans ce cas reviens qd il sera disponible.
Sinon si tu ne peux tester à l'appui des solutions proposées essaie de
reproduire les exemples sur un nouvea...

@+

On 28 juil, 13:20, dan wrote:
> Merci pour ta réponse mais je ne peux pas joindre le fichier car je ne suis
> pas sur mon ordi habituel.
>
> C'est pourtant ce qui m'est arrivé.
>
> Ligne1 = col1, col2, Col3, Col4
> NbLignes = cells(1,1).CurrentRegion.Rows.Count = 4
>
> Je précise que la ligne 2 était vierge de toute donnée.
>
> Sinon le même exemple tout à l'heure, le code ci dessous a donné la somme
> des lignes et des colonnes des cellules non vides.
> J'ai l'impression que ce code ne fonctionne que quand les cellules à droite
> sont vides.
>
> --
> dan
>
> "michdenis" a écrit :
>
> > | NbLignes = cells(1,1).CurrentRegion.Rows.Count
> > *** Impossible que cela puisse te donner le nombre de colonnes
> > de ta plage sauf si le nombre de colonnes égale le nombre
> > de ligne
>
> > Utilise Cjoint.com pour rendre ton fichier disponible ici.
>
> > (Ne publie que la partie de ton fichier démontrant ton observation !)
>
> > "dan" a écrit dans le message de news:
> >
> > Bonjour à tous,
>
> > Pour compter le nombre de LIGNES non vides d'une plage de cellules,
> > j'utilise le code suivant :
>
> > NbLignes = cells(1,1).CurrentRegion.Rows.Count
>
> > La plupart du temps, s'il n'y a qu'une seule cellule non vide, Nblignes est
> > égal à 1.
>
> > En faisant des tests, le même code peut renvoyer la valeur correspondant aux
> > cellules non vides mais en comptant le nombre de COLONNES.
> > Comment celà peut'il s'expliquer et comment résoudre le problème ?
> > Ou est l'erreur dans mon code (je veux éviter de sélectionner le nombre de
> > ligne pluis de les compter).
>
> > Merci d'avance à tous.
>
> > --
> > dan