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 :

[VBA-E] Passer d'un contrôle à l'autre avec tab dans une feuille de calculs


Sujet :

Macros et VBA Excel

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut [VBA-E] Passer d'un contrôle à l'autre avec tab dans une feuille de calculs
    Hellloo a tous...

    Les gars j'ai un probleme à la con... Voila je vous explique dans une feuille j'ai 3 texbox et un bouton. Quand j'appuie sur le bouton cela copie dans une cellule excel a part la somme des trois nombre et mon soucis est que si un des nombres présentent une virgule l'adition ne se fait pas j'ai un debogage dans le codage... Alors pour précision j'utilise le clavier numérique donc se n'est pas une virgule mais un point.

    feuil10.range("resultat").value = feuil9.textbox1.value + feuil9.textbox2value + feuil9.textbox3value

    voila et des que les nombres sont par exemple 12.5 + 15.6 + 65.2 et bien ca marche pas...



    Merci enormement de vous occuper de moi je suis dans la merde je dois rendre ca ce soir... help me

  2. #2
    Expert éminent
    Avatar de cafeine
    Inscrit en
    Juin 2002
    Messages
    3 904
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 3 904
    Points : 6 781
    Points
    6 781
    Par défaut
    Hello,

    les textbox ne renvoient pas de nombres, essaie
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuil10.range("resultat").value = CDbl(feuil9.textbox1.value) + CDbl(feuil9.textbox2value) + CDbl(feuil9.textbox3value)
    Ne mettez pas "Problème" dans vos titres, par définition derrière toute question se cache un problème
    12 tutoriels Access



  3. #3
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut ..
    Ca marche pas..; voila ce que j'ai mis

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
     Feuil9.Range("i" & i + 2).Value = CDbl(Feuil10.compt_allu.Value) + CDbl(Feuil10.compt_tabletterie.Value) + CDbl(Feuil10.compt_cadeaux.Value) + CDbl(Feuil10.compt_papeterie.Value)

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    bonsoir

    Tu dois remplacer les points par des virgules:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MsgBox Replace(Feuil1.TextBox1.Value, ".", ",") + 3

    bon week end
    michel

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut ..
    j'ai pas trop compris ou il faut mettre ca et pourquoi dans un message box ? tu veux que je previenne l'utilisateur de mettre des virgules et pas des points ??

  6. #6
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    j'ai pas trop compris ou il faut mettre ca et pourquoi dans un message box ? tu veux que je previenne l'utilisateur de mettre des virgules et pas des points ??
    ??? ... ce n'était qu'un exemple ...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Feuil9.Range("i" & i + 2).Value = Replace(Feuil10.compt_allu.Value, ".", ",") + _
        Replace(Feuil10.compt_tabletterie.Value, ".", ",") + Replace(Feuil10.compt_cadeaux.Value, ".", ",") + _
        Replace(Feuil10.compt_papeterie.Value, ".", ",")

    michel

  7. #7
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 4
    Points : 1
    Points
    1
    Par défaut alors la vraiment merciii
    franchement merci je suis trop content tu m'as vraiement enlevé un clou du pied... tu sais par contre g une qquestion moins importante mais si tu peux m'aider ca m'arrangerai.. sais tu passer d'un texbox a l'autre en appuyant sur tab moi ca mar che pas...

  8. #8
    Expert éminent sénior

    Homme Profil pro
    Inscrit en
    Août 2005
    Messages
    3 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2005
    Messages : 3 317
    Points : 20 144
    Points
    20 144
    Par défaut
    Rebonsoir

    C'est faisable dans certaines conditions (mais pas très simples à gérer).

    Voici un exemple basé sur un module de classe: ce ne sont pas les tabulations mais les flèches "monter" et "descendre" qui permettent de se déplacer entre les TextBox. (La feuille de calul ne dont contenir que des contrôles type "TextBox" pour que ça fonctionne.)

    il te restera à l'adapter pour ton projet.


    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
    18
    19
    20
    21
    22
    23
    '--------------------------------------
    'à placer dans le module objet ThisWorbook pour que la classe
    'soit initialisée lors de l'ouverture du classeur.
     
    Option Explicit
     
    Private Sub Workbook_Open()
    Dim Obj As OLEObject
    Dim Cl As Classe1
     
    Set Collect = New Collection
     
    For Each Obj In Feuil1.OLEObjects 'boucle sur les objets de la Feuil1
        If TypeOf Obj.Object Is MSForms.TextBox Then 'verifie s'il s'agit d'un Textbox
     
            Set Cl = New Classe1
            Set Cl.TexteGroup = Obj.Object
            Collect.Add Cl
        End If
    Next Obj
     
    End Sub
    '--------------------------------------

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    '--------------------------------------
    'dans un module standard
    Option Explicit
     
    Public Collect As Collection
    '--------------------------------------

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    '--------------------------------------
    'dans un module de classe nommé "Classe1"
    '
    Option Explicit
     
    Public WithEvents TexteGroup As MSForms.TextBox
     
     
    Private Sub TexteGroup_KeyUp(ByVal KeyCode As _
            MSForms.ReturnInteger, ByVal Shift As Integer)
     
    Dim Valeur As Byte
     
    Valeur = TexteGroup.Index
     
    'utilisation flèche "Monter"
    If KeyCode = 38 Then
        If Valeur = 1 Then Exit Sub
     
        With Collect(Valeur - 1).TexteGroup
            .Select
            .Activate
        End With
     
        Exit Sub
    End If
     
    'utilisation flèche "Descendre"
    If KeyCode = 40 Then
        If Valeur = Collect.Count Then Exit Sub
     
        With Collect(Valeur + 1).TexteGroup
            .Select
            .Activate
        End With
     
        Exit Sub
    End If
     
    End Sub
     
    '--------------------------------------

    michel

Discussions similaires

  1. Identifier le contrôle actif dans une feuille de calculs
    Par ouskel'n'or dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 04/03/2008, 18h47
  2. Identifier le contrôle actif dans une feuille de calculs
    Par ouskel'n'or dans le forum Général VBA
    Réponses: 2
    Dernier message: 03/03/2008, 18h08
  3. [VBA-E] Nommer chemin d'accès dans une feuille de calcul.
    Par BRUNO71 dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 09/03/2007, 13h30
  4. Réponses: 9
    Dernier message: 12/08/2006, 13h01
  5. Passer d'un champ à l'autre avec TAB
    Par Sharingan dans le forum MFC
    Réponses: 4
    Dernier message: 11/10/2005, 13h52

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