compter le nombre seulement sur une ligne

Lio59

XLDnaute Nouveau
Bonsoir à tous,

imaginons un tableau A1:H5 (5 lignes et 8 colonnes)
Le nombre de lignes peut être augmenté ou diminué

Normalement je sélectionne une ou plusieurs cellules contigües ou non (ctrl) uniquement sur une des lignes. Par exemple, je fais un choix de sélection de cellules sur la ligne 3.

Le nombre de cellules sélectionnées sur cette ligne 3 doit être renvoyé dans la cellule i3 suite à un clic sur un bouton de commande (c'est bon, j'y arrive)

Mon soucis : imaginons que la personne commence sa sélection sur la ligne 3 et déborde sur une autre ligne ou sorte de la plage A3:H3, une msgbox renvoie "Pas bien, essaye encore!"

Je pourrais bien définir une variable permettant de définir ma plage A3:H3 et dès que la sélection ne se trouve pas dans cette plage , affichage msgbox

Mais cette plage change en fonction de la ligne choisie.....

Comment faire?
Quelle serait la syntaxe pour quelque chose dans le genre :
if
la ligne des cellules sélectionnées = à la ligne de la cellule active "activecell.row"
then
je compte
else
msgbox"Pas bien, essaye encore!"

Pfff, merci à vous...

je continue à chercher...

Bonne soirée!
lio
 

vbacrumble

XLDnaute Accro
Re : compter le nombre seulement sur une ligne

Bonsoir


Dans le code de la feuille

Code:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
Target.Resize(0 - (Target.Column = 1), 8).Select
End Sub

EDITION: bonsoir job75
 
Dernière édition:

job75

XLDnaute Barbatruc
Re : compter le nombre seulement sur une ligne

Bonsoir Lio59, Re vbacrumble,

A tester :

Code:
Dim ref As Range
On Error Resume Next
Set ref = Intersect(ActiveCell.EntireRow, [A:H])
If Selection.Address <> Intersect(ref, Selection).Address Then _
MsgBox "Selection incorrecte !", 48: Exit Sub
Range("I" & ref.Row) = Selection.Cells.Count

A+
 

ROGER2327

XLDnaute Barbatruc
Re : compter le nombre seulement sur une ligne

Bonsoir à tous
J'ajoute ma contribution :
Code:
Sub aaa()
Dim tf As Boolean, oCel As Range
   For Each oCel In Selection.Cells
      tf = tf Or (oCel.Row <> Selection.Cells(1, 1).Row)
   Next oCel
   If tf Then MsgBox "Sélection incorrecte !": Exit Sub
   [COLOR="SeaGreen"]'Procédure si la saisie est correcte.[/COLOR]
End Sub
ROGER2327
 

Pièces jointes

  • Lio59.xls
    18 KB · Affichages: 57
  • Lio59.xls
    18 KB · Affichages: 53
  • Lio59.xls
    18 KB · Affichages: 54

Lio59

XLDnaute Nouveau
Re : compter le nombre seulement sur une ligne

Merci pour la rapidité...
Je viens d'insérer le code, effectivement quand je sélectionne la cellule de la colonne A, hop j'ai automatiquement toute la ligne jusqu'en H qui se sélectionne

L'utilisateur peut :
sélectionner plusieurs cellules contigües ou non de cette plage (1 cellule ou 3 ou 2+3) tjrs sur cette même ligne
mais l'utilisateur ne peut pas sélectionner d'autres cellules ni en dessous, ni au dessus, ni à gauche, ni à droite, nulle part ailleurs que dans cette plage.

En gros quand la cellule active sélectionne la ligne, il ne peut pas en changer à moins de supprimer sa sélection et recommencer..

Merci vbacrumble!
 

Lio59

XLDnaute Nouveau
Re : compter le nombre seulement sur une ligne

Oui, oui ,oui et re oui!

J'étais entrain de te répondre et pendant ce temps Job 75 et Roger 2327 m'ont répondu....
Tout d'abord merci à vous trois!
J'ai testé le code de Roger2327, oui c'est ça... cela fonctionne, merci pour le fichier joint!
C'est dingue lorsque un truc fonctionne on imagine les erreurs possibles et là pouf un autre problème... comment limiter la sélection aux colonnes a à H. Il me semble que le code de Job75 traite de ce soucis!
Je vais essayer.... Encore merci à vous!
Lio
 

Discussions similaires

Réponses
6
Affichages
162
Réponses
9
Affichages
209

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 413
Messages
2 088 199
Membres
103 764
dernier inscrit
nissassa