• Publicité

Ordre de passage du curseur dans une plage

Dans ce forum, vous pouvez poser toutes vos questions concernant l'utilisation de logiciels de bureautique (Microsoft Office, Open Office, etc.)

Modérateurs: Sebastien, Stéphane, Christophe

Ordre de passage du curseur dans une plage

Messagepar zombe » 20 Sep 2011 00:59

Bonsoir à tous

Je suis très reconnaissant envers tous les membres du forum.
Chacun en sa façon contribuant en sa bonne marche.
Permettez moi comme d'habitude de vous soumettre mes besoins que voici:
Je cherche à automatiser l'ordre de passage du curseur dans une plage.
En effet, je saisie des données dans la plage B5:B50.
En fonction de la valeur que prendra la cellule B4, certaines cellules ne doivent pas être renseignées(facultatif).
J'aimerai avoir une macro dont l'objet est de gérer l'ordre de passage d'une cellule à une autre suivants les critères ci-dessous:

1) si la valeur de la cellule B4 =CH PARTICULIER voici la réalisation attendue:
- je souhaite qu'après la cellule B34 le curseur se positionne en B36,
- de même, après avoir B37 que le curseur se positionne en B41,
- Enfin, après la cellule B42 que le curseur se positionne sur le bouton de la macro IMPRIMER.

2) si la valeur de la cellule B4 =CL voici la réalisation attendue:
- je souhaite qu'après la cellule B18 le curseur se positionne en B21,
- de même, après avoir B34 que le curseur se positionne en B36,
- ensuite, après B37, que le curseur se positionne en B41,
- Enfin, après la cellule B42 que le curseur se positionne sur le bouton de la macro IMPRIMER.
N.B : * Pour les autres valeurs de la cellule B4 toute la plage doit être accessible,
* si possible egalement, que les cellules inactives c'est à dire n'ayant pas été renseignées soient grisées.
Ci-joint le fichier
http://cjoint.com/?AIua6csaGCx

Je reste à votre disposition pour de plus amples explications.
zombe
Trolleur
Trolleur
 
Messages: 74
Inscription: 11 Juil 2011 05:52

Re: Ordre de passage du curseur dans une plage

Messagepar zombe » 26 Sep 2011 00:37

Bonsoir à tous

Ça fait 6j que j'ai pas encore reçu de feedback.
Si c'est parce que vous n'arrivez pas à décoder mon besoin, n'hésitez pas à me revenir pour de plus amples explications.
Je compte sur vous pour finaliser un projet qui me tient à cœur et qui pourra faciliter mon quotidien au service.
Bonne compréhension
zombe
Trolleur
Trolleur
 
Messages: 74
Inscription: 11 Juil 2011 05:52

Re: Ordre de passage du curseur dans une plage

Messagepar Sebastien » 27 Sep 2011 21:22

Bonjour,

zombe a écrit:Ça fait 6j que j'ai pas encore reçu de feedback.
Si c'est parce que vous n'arrivez pas à décoder mon besoin, n'hésitez pas à me revenir pour de plus amples explications.
Je compte sur vous pour finaliser un projet qui me tient à cœur et qui pourra faciliter mon quotidien au service.

Je n'ai pas eu le temps de me pencher sur votre message. J'ai commencé à regarder, je posterai quand j'aurai une solution qui fonctionne.

Par contre, vu que je tourne le plus souvent sur Excel 2000, je ne peux pas ouvrir votre fichier xlsm. Je n'ai pas nécessairement besoin d'un exemple pour faire une macro, mais si vous postez un fichier, il est préférable de le poster dans un format compatible Excel 97-2000 ou 2003.

Autres points :
A quel moment doit-on griser les cellules ? Une fois la dernière cellule renseignée ?

Pour la condition "sélection du bouton imprimer", ça pose problème (d'apres mes tests, le bouton est bien sélectionné mais en mode édition, un clic dessus ne lance pas la macro).
Il serait préférable de placer le curseur à coté du bouton. Dans quelle cellule peut on placer le curseur ?



@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 4688
Inscription: 14 Fév 2005 20:17
Localisation: LILLE

Re: Ordre de passage du curseur dans une plage

Messagepar zombe » 28 Sep 2011 01:00

Bonsoir Sébastien

Merci pour votre feedback.
Je suis déjà rassuré de savoir que vous êtes en train de me concocter quelque chose.

zombe a écrit:A quel moment doit-on griser les cellules ? Une fois la dernière cellule renseignée ?


C'est bien ça (après la dernière saisie).

zombe a écrit:Il serait préférable de placer le curseur à coté du bouton. Dans quelle cellule peut on placer le curseur ?


Le curseur peut être placé sur la cellule E3.

Bonne suite de programme.
zombe
Trolleur
Trolleur
 
Messages: 74
Inscription: 11 Juil 2011 05:52

Re: Ordre de passage du curseur dans une plage

Messagepar Sebastien » 30 Sep 2011 21:49

Bonjour,

Ci-dessous une macro réalisant les commandes demandées. Cette macro doit être insérée depuis le module Microsoft Visual Basic (ALT + F11 dans Excel) et doit absolument être collée dans un objet "feuille" et pas dans un module.
En effet, la macro (en réalité il y en a deux) contient un code événement qui réagit à un changement de cellule. Donc si votre feuille Excel s'appelle Feuil1, la macro dans être coller dans l'objet Feuil1 dans le module Visual Basic.

La macro :
Code: Tout sélectionner
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo fin

If Range("B4").Value = "CH PARTICULIER" Then
    If Target.Address = "$B$34" And Target.Value <> "" Then
        Range("B36").Select
        ElseIf Target.Address = "$B$37" And Target.Value <> "" Then
        Range("B41").Select
        ElseIf Target.Address = "$B$42" And Target.Value <> "" Then
        Call colorer_cellule
        Range("E3").Select
        Else: GoTo fin
    End If

ElseIf Range("B4").Value = "CL" Then
    If Target.Address = "$B$18" And Target.Value <> "" Then
        Range("B21").Select
        ElseIf Target.Address = "$B$34" And Target.Value <> "" Then
        Range("B36").Select
        ElseIf Target.Address = "$B$37" And Target.Value <> "" Then
        Range("B41").Select
        ElseIf Target.Address = "$B$42" And Target.Value <> "" Then
        Call colorer_cellule
        Range("E3").Select
        Else: GoTo fin
    End If

Else: GoTo fin
End If

fin:
Exit Sub

End Sub

Sub colorer_cellule()
Dim cpt As Integer

'
' Macro1 Macro
' Macro enregistrée le 30/09/2011 par Sebastien
'

'
Range("B5").Select
cpt = 0

Do While cpt < 46 'permet de tester de B5 à B50

    If ActiveCell.Value = "" Then
        With Selection.Interior
            .ColorIndex = 15
            .Pattern = xlSolid
        End With
        ActiveCell.Offset(1, 0).Select
        cpt = cpt + 1
       
    Else
       
        ActiveCell.Offset(1, 0).Select
        cpt = cpt + 1
    End If

Loop

End Sub



Par contre, il risque d'avoir un problème avec les règles que vous avez décrites.
Vous dites saisir des données de B5 à B50. Par contre, dès la saisie d'une information dans la cellule B42, le curseur se place dans E3 et grise les cellules vides.
Dans ce cas, comment saisir des données dans les cellules de B43 à B50 ?

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 4688
Inscription: 14 Fév 2005 20:17
Localisation: LILLE

Re: Ordre de passage du curseur dans une plage

Messagepar zombe » 02 Oct 2011 01:51

Bonsoir Sébastien

J'ai beaucoup apprécié la macro que vous m'avez réalisée.
Sebastien a écrit:Vous dites saisir des données de B5 à B50. Par contre, dès la saisie d'une information dans la cellule B42, le curseur se place dans E3 et grise les cellules vides.Dans ce cas, comment saisir des données dans les cellules de B43 à B50 ?

C'est vrai que j'ai defini la plage B5:B50. J'ai aussi précisé que toutes les cellules de la plage ne doivent pas être renseignées lorsque la valeur de B4 = CH PARTICULIER ou si B4 = CL. Mais si la B4 prend une autre valeur, toute la plage doit être renseigné.
J'ai constaté que les cellules se grisent pour de bon même si je venais à effacer les infos existantes.
J'aurai souhaité que lorsque je lance la macro effacer, que toutes les cellules reprennent leur couleur.
Aussi, je croyais que c'était possible de griser les cellules au fur et à mesure.
Sinon que dejà la macro répond à mon besoin mais si c'est possible de prendre en compte les précisions que je viens d'apporter, ca me ferai plaisir.
Que DIEU vous bénisse.
zombe
Trolleur
Trolleur
 
Messages: 74
Inscription: 11 Juil 2011 05:52

Re: Ordre de passage du curseur dans une plage

Messagepar Sebastien » 09 Oct 2011 00:26

Bonjour,

zombe a écrit:Mais si la B4 prend une autre valeur, toute la plage doit être renseigné.

Ce point est normalement pris en compte dans la macro. Les commandes qui passent les lignes et qui grisent les cellules n'interviennent que si B4 = CH PARTICULIER ou CL


zombe a écrit:J'ai constaté que les cellules se grisent pour de bon même si je venais à effacer les infos existantes.
J'aurai souhaité que lorsque je lance la macro effacer, que toutes les cellules reprennent leur couleur.

Vous parlez d'une macro effacer. Si cette macro permet de vider le contenu des cellules saisies, il suffit d'ajouter la ligne suivante dans la macro pour supprimer la couleur de remplissage :
Code: Tout sélectionner
    Range("B5:B50").Select
    Selection.Interior.ColorIndex = xlNone



zombe a écrit:Aussi, je croyais que c'était possible de griser les cellules au fur et à mesure.

Je pense que ça pourrait être fait mais c'est plus complexe.
Si je demande à la macro de mettre du gris lors d'un changement de cellule, cela signifie qu'il ne faut jamais sauter une cellule, sinon elle serait déjà grise avant qu'on la corrige. Cela impliquerait de tester à chaque changement de ligne :
la cellule est elle vide ?
Si oui je la grise, sinon cela signifie qu'il y a quelque chose dedans et donc je supprime la couleur.

Cela alourdirait la macro mais ça peut être fait. Il resterait le problème des cas où l'on saute des lignes mais ils seraient colorés par la macro déjà existante.
Doit on chercher dans cette direction ou bien la ligne permettant de supprimer la couleur grise avec votre macro effacer est suffisante ?

@+
Image
Avatar de l’utilisateur
Sebastien
Administrateur
Administrateur
 
Messages: 4688
Inscription: 14 Fév 2005 20:17
Localisation: LILLE

Re: Ordre de passage du curseur dans une plage

Messagepar zombe » 09 Oct 2011 04:06

Bonsoir Sébastien

Merci pour les éléments de réponse.
Je préfère me contenter de ce que vous venez de me présenter.
Ca me convient. :
-D
zombe
Trolleur
Trolleur
 
Messages: 74
Inscription: 11 Juil 2011 05:52


Retourner vers Forum d'entraide : Bureautique

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

  • Publicité