IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Création petit programme


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut Création petit programme
    Bonjour,
    J'aimerais savoir s'il est possible de créer un petit programme sur VBA Excel qui permettrait de faire la chose suivante :
    Lorsque je suis sur la feuille excel, quand je suis sur une cellule spécifique contenant un nombre entier et que je clique sur une touche quelconque sur mon clavier (par exemple sur +), que le programme additionne automatiquement 1 au chiffre déjà présent dans la cellule. Par exemple, la cellule B1 est sélectionnée et contient le nombre 6. Lorsque je clique sur +, le programme additionne 6 et 1 (la cellule contient alors le nombre 7), et ainsi de suite.
    Je vous remercie d'avance pour votre aide !

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Je ne sais pas l'utilité, ma proposition est la suivante
    en B1, tu as un nombre
    tu sélectionne B1
    tu y écris + (ou -)
    tu valide
    la nouvelle valeur sera reportée
    à mettre dans les événements de la feuille en question
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Option Explicit
    Public ValIni As Integer
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$1" Then
        Application.EnableEvents = False
        Select Case Target.Value
            Case "+": Target.Value = ValIni + 1
            Case "-": Target.Value = ValIni - 1
        End Select
        Application.EnableEvents = True
    End If
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$B$1" Then ValIni = Target.Value
    End Sub

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut Encore un petit truc...
    Bonjour, comment modifier le code suivant, afin de pouvoir le généraliser à toutes les cellules comprises entre C1 et K38, et pas seulement à B1 ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Option Explicit
    Public ValIni As Integer
     
    Private Sub Worksheet_Change(ByVal Target As Range)
    If Target.Address = "$B$1" Then
        Application.EnableEvents = False
        Select Case Target.Value
            Case "+": Target.Value = ValIni + 1
            Case "-": Target.Value = ValIni - 1
        End Select
        Application.EnableEvents = True
    End If
    End Sub
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address = "$B$1" Then ValIni = Target.Value
    End Sub
    Merci infiniment !

  4. #4
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    re , je vais me permettre de repondre a la place de mon ami mercatog vu qu'il est pas la.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    Option Explicit
    Public ValIni As Integer
     Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("c1:k38")) Is Nothing Then
        Application.EnableEvents = False
        Select Case Target.Value
            Case "+": Target.Value = ValIni + 1
            Case "-": Target.Value = ValIni - 1
        End Select
        Application.EnableEvents = True
    End If
    End Sub
     Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("c1:k38")) Is Nothing Then ValIni = Target.Value
    End Sub

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut Merci
    Merci à vous, c'est vraiment sympa !

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2009
    Messages : 4
    Par défaut Merci
    Merci beaucoup, mercatog, c'est exactement ce que je voulais !
    Quant à l'utilité, ce serait trop long à expliquer en détails mais ça va me faire gagner pas mal de temps, alors vraiment, merci.

  7. #7
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour une autre methode avec onkey changement cellule a1

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Not Application.Intersect(Target, Range("A1")) Is Nothing Then
    Application.OnKey "{107}", "test"
    Else
    Application.OnKey "{107}"
    End If
    End Sub
    dans un module standard

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Sub Test()
    If IsNumeric([a1]) And [a1] - Int([a1]) = 0 Then [a1] = [a1] + 1
    End Sub

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Demande de création d'un petit programme :)
    Par makertoo dans le forum C++
    Réponses: 2
    Dernier message: 09/06/2009, 09h48
  2. Création d'un petit programme
    Par kozoff78 dans le forum C
    Réponses: 5
    Dernier message: 20/05/2009, 14h25
  3. aide petit programme pour débutant
    Par kartp0rqx dans le forum C
    Réponses: 16
    Dernier message: 14/10/2005, 19h31
  4. Faisabilité d'un petit programme FTP...
    Par ptit_seb dans le forum Windows
    Réponses: 2
    Dernier message: 15/09/2005, 21h10
  5. [SRC] Petit programme avec BD
    Par Nico62 dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/01/2005, 20h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo