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 :

saisie automatique dans textbox


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut saisie automatique dans textbox
    Bonjour

    J'ai des textbox dans mon userform remplis par saisie par codebarre. Tous les textbox doivent être remplies pour confirmer le transfert vers le fichier Excel. La confirmation se fait par un bouton.
    Je veux introduire une nouvelle condition . Pour un texte donné saisie dans un des 6 textbox dont je doit préciser lequel dans le code, j'aimerais afficher dans les autres textbox des textes données que j'introduirai dans le code aussi. Je confirmerai le tout par le bouton déjà cité en haut. J'aimerais avoir cette portion du code et ou l'introduire exactement.
    Voici comment mes textbox sont placés

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Range("A" & L).Value = TextBox1
    Range("B" & L).Value = TextBox2
    Range("C" & L).Value = TextBox3
    Range("D" & L).Value = TextBox4
    Range("E" & L).Value = TextBox5
    Range("F" & L).Value = TextBox6
    Merci d'avance

  2. #2
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, demande très imprécise. imaginons le texte à rechercher est dans TextBox2.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    If TextBox2.value = "Texte à reconnaître" then
    TextBox1.value = "Texte à prévoir"
    TextBox3.value = " etc"
       ' ainsi de suite
    else 
    End if
    Range("A" & L).Value = TextBox1
    Range("B" & L).Value = TextBox2
    Range("C" & L).Value = TextBox3
    Range("D" & L).Value = TextBox4
    Range("E" & L).Value = TextBox5
    Range("F" & L).Value = TextBox6
    J'ai pas pu tester le code ci-dessus

    Cordialement

  3. #3
    Membre du Club
    Inscrit en
    Juillet 2009
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 7
    Par défaut
    Entre temps j'ai eu une erreur intermittente :
    Erreur 1004 La méthode 'Sheet de l'objet '_Global' a échoué
    J'ai un formulaire avec un bouton pour transférer les données de mon formulaire sur Excel

    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
    Private Sub CommandButton1_Click()
    Dim L As Integer
     
    If MsgBox("Etes-vous certain de vouloir CONFIRMER ?", vbYesNo, "Demande de confirmation") = vbYes Then
    L = Sheets("Gestion du temps").Range("a65536").End(xlUp).Row + 1
    Range("A" & L).Value = TextBox1
    Range("B" & L).Value = TextBox2
    Range("C" & L).Value = TextBox3
    Range("D" & L).Value = TextBox4
    Range("E" & L).Value = TextBox5
    Range("F" & L).Value = TextBox6
    Range("G" & L).Value = Format(Date, "dd mmmm yyyy")
    Range("H" & L).Value = Format(Now, "hh: mm:ss")
    Range("L" & L).Value = Range("L:L").End(xlDown).Value + 1
    MsgBox ("Saisie avec succées")
    TextBox1 = ""
    TextBox2 = ""
    TextBox3 = ""
    TextBox4 = ""
    TextBox5 = ""
    TextBox6 = ""
     
    End If
    End Sub

    Et le débogage me renvoie à cette ligne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    L = Sheets("Gestion du temps").Range("a65536").End(xlUp).Row + 1

    Quelle est le problème . je cherche encore.

  4. #4
    Membre Expert Avatar de Transitoire
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Décembre 2017
    Messages
    733
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Décembre 2017
    Messages : 733
    Par défaut
    Bonjour, C'est difficile à dire vu le peu d'explications de la globalité du problème.
    Je pencherais pour une mauvaise déclaration de la variable L.
    INTEGER : Données contenant des nombres entiers stockés, de 2 octets, compris entre -32 768 et 32 767.
    Je vous invite a lire le tutorums de Silkyroad sur les variables.
    https://silkyroad.developpez.com/VBA...riables/#LII-C
    Cordialement

  5. #5
    Expert confirmé

    Homme Profil pro
    Curieux
    Inscrit en
    Juillet 2012
    Messages
    5 169
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Curieux
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Juillet 2012
    Messages : 5 169
    Billets dans le blog
    5
    Par défaut
    Bonjour,

    outre la nécessité de passer L en Long, se borner à la ligne 65536 est révolu depuis Excel 2007
    l'erreur renvoyée peut correspondre à deux choses (éventuellement cumulatives) :

    1) le nom de la feuille est mal écrit
    2) cette feuille n'est pas située sur le classeur actif au moment du déroulé

    une proposition non testée, il faut spécifier le nom du classeur (et vérifier le nom de la feuille)
    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
    Private Sub CommandButton1_Click()
    Dim L As Long
        If MsgBox("Etes-vous certain de vouloir CONFIRMER ?", vbYesNo, "Demande de confirmation") = vbYes Then
            With Workbooks("NomDuClasseur.extension").Worksheets("Gestion du temps")
                L = .Range(.Rows.Count, 1).End(xlUp).Row + 1
                .Range("A" & L).Value = Me.TextBox1.Value
                .Range("B" & L).Value = Me.TextBox2.Value
                .Range("C" & L).Value = Me.TextBox3.Value
                .Range("D" & L).Value = Me.TextBox4.Value
                .Range("E" & L).Value = Me.TextBox5.Value
                .Range("F" & L).Value = Me.TextBox6.Value
                .Range("G" & L).Value = Format(Date, "dd mmmm yyyy")
                .Range("H" & L).Value = Format(Now, "hh: mm:ss")
                .Range("L" & L).Value = .Range(.Rows.Count, 12).End(xlDown).Value + 1
                MsgBox ("Saisie avec succées")
                Me.TextBox1 = ""
                Me.TextBox2 = ""
                Me.TextBox3 = ""
                Me.TextBox4 = ""
                Me.TextBox5 = ""
                Me.TextBox6 = ""
            End With
        End If
    End Sub

  6. #6
    Expert confirmé
    Avatar de MarcelG
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2009
    Messages
    3 449
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 68
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2009
    Messages : 3 449
    Billets dans le blog
    7
    Par défaut
    Salut,

    Si je peux cumuler une observation à celle de Joe, que je salue au passage, je dirais qu'il souvent utile de renommer les contrôles.
    Ceci en préfixant chaque nom par des caractères indiquant la nature du contrôle.

    Exemple
    Txt_laville
    Cette précaution aurait double avantage
    - une plus grande lisibilité du code
    - une interactivité plus aisée avec la feuille de travail.
    Si les noms de cellule sont bien homogènes, en effet, alors l'alimentation de la feuille de travail s'exécuterait par une simple boucle sur les items d'un Array.
    Et ce même si les noms sont des entêtes de champ, par la propriété Offset.

    Enfin, certes récemment sensibilisé, je ne peux que conseiller une interaction Formulaire - Tableau Structuré
    Voir à ce sujet, cet espace , celui-ci, et ce-dernier.

Discussions similaires

  1. Saisie semi-automatique dans TextBox
    Par zidane22 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 11/04/2014, 18h25
  2. Saisie automatique dans un TextBox
    Par makia42 dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 10/02/2010, 13h27
  3. Scrolling automatique dans TextBox
    Par stephane.julien dans le forum C#
    Réponses: 6
    Dernier message: 09/10/2007, 19h27
  4. saisie automatique dans le formulaire
    Par DOUNIA595 dans le forum IHM
    Réponses: 2
    Dernier message: 20/08/2007, 09h42
  5. Réponses: 14
    Dernier message: 27/11/2006, 14h07

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