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] Addition des valeurs des textbox


Sujet :

Macros et VBA Excel

  1. #41
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Excuse-moi Ouskel : j'ai vu que tu étais ailleurs et ai voulu faire "avancer" le truc...
    je me retire maintenant.
    Tu as bien tort, tu as déjà corrigé l'une de mes erreurs (pas le tps de vérifier ce que j'avais dit) et en outre, j'ai toujours pensé qu'un pb se résolvait mieux à plusieurs. Enfin, on est sur le forum, sinon on communiquerait par mp...
    Merci de ton aide mais... ne me quitte pas, je t'inventerai des mots incensés que tu comprendras...

    Cher nom,

    Si tu as -1 c'est que ton N° de colonne n'est pas bon parce que le code fourni ne peut te donner que ce que tu lui mets.
    Or tu lui mets bien Textbox mais je t'ai demandé le N° de colonne...
    Tu le testes avant de remplir ta variable LeControl. Là, je pense que tu vas comprendre

    A+

  2. #42
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    désolé mais je ne comprend pas. Il faut dire que le code que j'ai recopier est un peu complexe pour moi

  3. #43
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Au lieu de faire
    Jour = Day(Now)
    LeControl = "TextBox" & cstr(Nocolonne-1)
    msgbox LeControl
    Fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Jour = Day(Now) 
    msgbox NoColonne '******Ajoute cette ligne, tu as zéro dedans ! ( 0 )
    'LeControl = "TextBox" & cstr(Nocolonne-1)
    '......etc
    Normal qu'après tu aies TextBox-1

    Vérifie l'initialisation de NoColonne. Tu le prends où ?

    A+

  4. #44
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    lorsque je rajoute la ligne
    dans l'évenement activate cela ne me met pas zéro mais rien enfin une fenetre vide

    quand à l'initialaisation de NoColonne elle se fait au niveau de la boucle for à chaque fois qu'on boucle il s'incrémente de 1

    je suppose que tu essai de me faire comprendre l'erreur par moi meme
    je t'averti je commence à saturé un peu donc ca risque de prendre du temps lol

  5. #45
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Alors teste
    LeControl = "TextBox" & cstr(Nocolonne-1)
    msgbox LeControl
    Dans la boucle, pas avant d'être entré dedans...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    For NoColonne = 2 to ...........
         LeControl = "TextBox" & cstr(Nocolonne-1) 
         msgbox LeControl
         '....
    Le problème est que tu nous as peu à peu abandonné ton projet.
    Reprends ton truc en main, il est à toi, relis les différentes réponses, d'accord, mais surtout essaie de comprendre le pourquoi de nos questions.
    Tu verras, c'est mieux que n'importe quel code qu'on te donnerait encore.

    Que cela ne t'empêche pas de nous interroger ensuite

    A+

  6. #46
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    Le problème est que tu nous as peu à peu abandonné ton projet.
    la je te controdirai pas

    d'ailleur j'ai voulu revenir à quelque chose qui ressemblais plus à mon idée de départ car le code que vous me proposiez je ne le comprend pas donc pour le modifier c'est pas evident


    Bref je vais essayer de m'en sortir avec tout ce que j'ai déjà
    merci

  7. #47
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    C'est un peu de notre faute.
    Ce que nous avons cherché à faire est, d'après le nom de ton textbox, de retrouver son index dans ton form (puisque par le nom, on n'y arrive pas)
    Une fois l'index trouvé, il suffit de l'utiliser dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Opération.controls(index).text =
    comme tu l'aurais utilisé dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Opération.Textbox1.text =
    Mais on a avancé sans t'expliquer.
    Si tu as d'autres questions, n'hésite pas

    A+

  8. #48
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    et pour trouvé l'index on utilise cette ligne c'est cas?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Set MonTextBox = Opération.Controls(Lindex)

    je met aussi ce que j'ai essayé de faire de mon coté (ca n'a pas de lien avec votre code puisque c'est plus pres de mon premier code )


    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
     
     
    Jour = Day(Now)
     
    'si l 'utilisateur ne met rien dans la case opération 1
    For lettre = Asc("B") To Asc("V")
        NoColonne = lettre - 65
        MsgBox TextBox & NoColonne
        MsgBox NoColonne
        If Controls(TextBox & NoColonne).Value = "" Then
            Range(lettre & Jour + 3) = Range(lettre & Jour + 3) 'le total reste le même
        Else
            Range(lettre & Jour + 3) = Range(lettre & Jour + 3) + Controls(TextBox & NoColonne).Value 'sinon on additionne l'ancien total avec la valeur que l'utilisateur viens de mettre dans opération1
        End If
     
    Next
    mais toujours objet spécifié introuvable pour mon if Controls ...

  9. #49
    Inactif  
    Avatar de ouskel'n'or
    Profil pro
    Inscrit en
    Février 2005
    Messages
    12 464
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2005
    Messages : 12 464
    Par défaut
    Non, c'est toute cette boucle qu'il faut utiliser

    Recherche de l'index d'un contrôle d'après le nom du contrôle
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    Dim jour, LeControl, i, Lindex 'etc
    Dim ok as boolean
    Jour = Day(Now) 
    LeControl = "TextBox" & cstr(Nocolonne-1) 
    For each Controle in Opération.controls 
          Lindex  = Lindex  + 1 
          ok = Controle.name = LeControl then  'nom de ton contrôle 
          if ok then exit for 
    Next
    Si le contrôle a été trouvé, tu as son index (Lindex)

    Ensuite, pour lire tester le contenu du texbox, tu fais ça

    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
    If not ok then 'le contrôle n'a pas été trouvé
         msgbox "Ce contrôle n'existe pas"
         exit sub
    endif
    'sinon il a été trouvé, tu continues
    Set MonTextBox = Opération.controls(Lindex)  
    With MonTextBox 
       For NoColonne = 2 To 22 
         If .Text = "" Then 
              Cells("& Jour + 3,NoColonne") = Cells("& Jour + 3,NoColonne") 'le total reste le même 
           Else 
              Cells("& Jour + 3,NoColonne") = Cells("& Jour + 3,NoColonne") + Val(.Text) 
         End If 
       Next 
    End with
    Bon courage

    A+

    Edit
    J'ai ajouté un booléen pour tester l'existence du contrôle que tu cherches

  10. #50
    Membre éclairé
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    795
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 795
    Par défaut
    je pense avoir trouvé la cause du problème
    c'est tellement bête que j'en ai presque honte
    en fait mon dernier textbox était le textbox21 or dans la boucle on fesait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    for i= 1 to 22 
    if Controls("TextBox" & i).Value <> "" Then
    ...
    donc c'est normal qu'il trouvais pas le texbox22

    je suis donc revenue sur un code plus simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ligne = Day(Now) + 3
    For i = 1 To 21
        If Controls("TextBox" & i).Value <> "" Then
            Sheets(1).Cells(ligne, i + 1).Value = Sheets(1).Cells(ligne, i + 1).Value + Controls("TextBox" & i).Value
        Else
        End If
    Next i

    je suis vraiment désoler de cette erreur
    Un grand merci à ouskel'n'or pour m'avoir aidé
    je t'avou que je suis un peu géné mais bon ca arrive (souvent) avec moi

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 2
    Dernier message: 30/03/2011, 03h07
  2. Récupération des valeurs de TextBox sur la Main Form
    Par Ttchaouse dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/07/2007, 12h07
  3. Réponses: 5
    Dernier message: 15/06/2007, 11h58
  4. [vba-access] Test sur valeur des champs puis publipostage
    Par realthunderbolt dans le forum Access
    Réponses: 1
    Dernier message: 01/08/2006, 16h38
  5. VBA Excel , récuperer la valeur des options buttons
    Par morgan47 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 27/06/2006, 14h25

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