Selection de cellules uniquement dans une plage autorisée  Sujet résolu

Pour toutes vos questions à propos d'Excel ...

Selection de cellules uniquement dans une plage autorisée  Sujet résolu

Messagepar philoflore » 23 Avr 2008, 10:44

Bonjour à tous,

Objectif résumé : Pouvoir sélectionner une ou plusieurs cellules uniquement dans une plage autorisée (seulement dans une procédure)

Objectif détaillé :
Programme qui permet à l'utilisateur de sélectionner une ou plusieurs cellules uniquement dans une plage autorisée ou sélectionnable (seulement dans une procédure). Après l'exécution de cette procédure, toutes les cellules redeviennent "autorisées" ou "sélectionnables".

Contexte : l'utilisateur doit pouvoir sélectionner une ou des cellules dans une plage autorisée (A1:10). Ex. l'utilisateur sélectionne A3 et A5. Il ne pourra sélectionner B3 par exemple. En cliquant sur un bouton, toutes les cellules sélectionnées recevront une valeur X. Donc A3 = X et A5 =X. Après l'exécution de cette procédure, toutes les cellules redeviennent sélectionnables. Remarque : je ne peux me servir des protections car certaines cellules sont protégées et d'autres pas.

Est-ce faisable en VBA Excel ?

Un grand merci pour la réponse
philoflore
Nouveau venu
 
Messages: 7
Inscription: 18 Avr 2008, 15:09

Messagepar Nad-Dan » 23 Avr 2008, 11:18

Bonjour,

Une idée dans ce fichier -> http://www.excel-pratique.com/~files/do ... _Click.xls

Un click dans une cellule entre A1 et A10 te mets un X (ou l'enlève s'il y en a un) dans la cellule sélectionnée.

A te relire.
Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Complément d'information:

Messagepar philoflore » 23 Avr 2008, 11:50

Merci infiniment Nad-Dan

La réponse que tu me donnes est vraiment intéressante, cela me donne des idées pour la suite. Ce morceau de programme est génial ! Bravo

En fait, j'ai simplifié l'énoncé. L'utilisateur ne doit pas pouvoir sélectionner d'autres cellules que A1 à A10. En bref, si mon collègue peut sélectionner une cellule hors de la plage autorisée cela va poser problème dans le programme quand il va cliquer sur le bouton valider. Donc je dois "verrouiller" les autres cellules pour qu'il ne puisse sélectionner d'autres cellules que A1 à 10.
Encore un grand merci pour ta réponse

En résumé, est-ce possible de verrouiller la sélection de toute autre cellules que A1:10 ou est-ce possible de n'autoriser que la sélection d'une ou plusieurs cellule dans la plage A1:A10 ?

Un grand merci
philoflore
Nouveau venu
 
Messages: 7
Inscription: 18 Avr 2008, 15:09

Messagepar Nad-Dan » 23 Avr 2008, 17:09

re,

Une idée dans ce fichier. On protège ta feuille à l'ouverture et/ou à la fermeture du fichier.
Les cellules A1 à A10 sont toujours libres pour mettre le X.

http://www.excel-pratique.com/~files/do ... lick_2.xls

Dan
Nad-Dan
Modérateur
 
Messages: 7309
Inscription: 27 Avr 2007, 15:30
Localisation: Nad à Dax (France) - Dan à Liège (Belgique)
Version Excel: 2003 FR-2007 FR-MAC 2004 FR

Messagepar philoflore » 23 Avr 2008, 17:53

Encore merci Nad-Dan

Le fait que l'utilisateur peux sélectionner d'autres cellules pose problème.

Je pense que le mieux -si c'est possible- serait que l'utilisateur ne puisse sélectionner une autre plage que les cellules dans la plage A1 à A10.

D'avance un grand merci
philoflore
Nouveau venu
 
Messages: 7
Inscription: 18 Avr 2008, 15:09

Messagepar felix » 23 Avr 2008, 18:00

Bonjour
bonjour Nad&Dan

tu peux rajouter cette ligne dans le workbook_open()

Code: Tout sélectionner
Private Sub Workbook_Open()
'Macro par Dan pour Philoflore - XL pratique le 23/04/08
Worksheets(1).ScrollArea = "a1:a10"
On Error Resume Next
With Sheets("feuil1")
    .Range("A1:A10").Locked = False
    .Protect
End With
End Sub


Mais attention, si les utilisateurs ne valident pas l'utilisation des macros, cela est inutile....
Et suppose que tout le tableau est dans une page
Sinon, il faut voir les propriétés de protection, et ne pas autoriser la sélection des cellules protégées
felix
Membre impliqué
 
Messages: 1549
Inscription: 11 Août 2007, 20:01
Localisation: Landerneau, Finistère
Version Excel: 2003 Fr (PC); 2007 Fr (PC)

Messagepar philoflore » 25 Avr 2008, 10:08

Merci à tous pour votre aide. Finalement, j'ai opté pour cette solution :

Sub testValeurDansPlage()
Dim cel As Range
Dim ErreurSelectionNom As Integer
ErreurSelectionNom = 0

For Each cel In Selection
If (cel.Column <> 2) Or (cel.Row < 6) Or (cel.Row > 23) Then
ErreurSelectionNom = 1
End If
Next

If ErreurSelectionNom = 1 Then
MsgBox "veuillez sélectionner dans la plage B7 a B23"
Else
MsgBox "c'est ok"
End If
End Sub

Merci et à bientôt

Carpe diem !
philoflore
Nouveau venu
 
Messages: 7
Inscription: 18 Avr 2008, 15:09


Retourner vers Excel - VBA

 


  • Sujets similaires
    Réponses
    Vus
    Dernier message

Utilisateurs en ligne

Utilisateurs parcourant ce forum: Bing [Bot], Google [Bot] et 1 invité

cron