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 :

Macro Récupération des saisies dans les TextBox et recopie dans un tableau d'une autre feuille


Sujet :

Macros et VBA Excel

  1. #1
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Macro Récupération des saisies dans les TextBox et recopie dans un tableau d'une autre feuille
    Bonjours,

    Je suis débutant sur VBA, Je suis en train de créer une base de données par gérer ma clientèle et mes contacts. Lorsque je lance la macro en cliquant sur le bouton que j'ai installez. La macro bloque et me met un message : "Erreur de compilation : Qualificateur incorrect" est indiquant ma première ligne de code ("Sub VS_Click()").

    JE ne comprend pas pourquoi, j'ai pourtant vérifié le bouton se nomme bien VS. J'ai utilisé cette commande sur d'autres feuilles et sa fonctionne très bien. Pouvez-vous m'expliqué se que j'ai fait de travers.

    Vous trouverais si joint les ligne de code qui me pose problème.

    Merci d'avance. Cordialement JG

    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
    Sub VS_Click()
     
    Dim i As Integer
     
    i = 0
     
        If Worksheets("Fichier Sociétés").Range(i, 1) = "" Then
     
            Worksheets("Fichier Sociétés").Cells(i, 1) = i.Value
            Worksheets("Fichier Sociétés").Cells(i, 2) = TextBox1.Value
            Worksheets("Fichier Sociétés").Cells(i, 3) = TextBox2.Value
            Worksheets("Fichier Sociétés").Cells(i, 4) = TextBox3.Value
            Worksheets("Fichier Sociétés").Cells(i, 5) = TextBox4.Value
            Worksheets("Fichier Sociétés").Cells(i, 6) = TextBox6.Value
            Worksheets("Fichier Sociétés").Cells(i, 7) = TextBox5.Value
            Sheets("Fichier Sociétés").Select
     
        Else: i = i + 1
     
    End Sub

  2. #2
    Membre éclairé
    Homme Profil pro
    autodidacte
    Inscrit en
    Novembre 2013
    Messages
    517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : autodidacte
    Secteur : Industrie

    Informations forums :
    Inscription : Novembre 2013
    Messages : 517
    Points : 684
    Points
    684
    Par défaut
    bonjour,

    Pouvez vous mettre le classeur en PJ svp en mettant des données bidons si c'est confidentiel.

    Par contre je ne vois pas ce que votre macro fait puisque i = 0
    donc à la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    If Worksheets("Fichier Sociétés").Range(i, 1) = "" Then
    ca ne veut rien dire pour moi..
    A moins que je fasse erreur range(0,1) n'existe pas je me trompe?
    Merci de cliquer sur pour chaque message vous ayant aidé
    puis sur pour clore cette discussion …

    C'est en récoltant les cailloux qu'on te jette que tu construiras ta future estrade...

  3. #3
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 908
    Points : 87 592
    Points
    87 592
    Billets dans le blog
    2
    Par défaut
    Salut à tous,
    Est ce que le problème ne vient pas de Range(i,1)? Je crois que pour faire référence à une cellule, c'est Range("Nom de la cellule sous la forme lettre&chiffre") ou Cells(N° Ligne,N° Colonne).
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  4. #4
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Le but de cette boucle est de trouvé la première ligne vierge d'un tableau. J'ai modifié le i=0 en i = 1 pour sélectionné la première ligne du tableur déjà une boulette en moins.

    Le principe que je veux mettre en place est le suivant :

    Je veux pouvoir gérer mes données clients via macro.

    Sur un feuillet (présenter comme un formulaire de renseignement) avec une TextBox pour chacun renseignement (nom société, secteur d'activité, adresse, n°SIRET, ...etc).

    En bas du formulaire un bouton de commande pour validé les renseignement (se qui lance ma macro).

    Lorsque la macro se lance, elle commence par cherché la première ligne vierge dans le listing de mes clients (c'est cette fonction qui doit être assuré par la boucle). Lorsqu'elle a trouvée la ligne, elle recopie les informations de chaque TextBox sur cette ligne dans leurs colonnes respectives.

    J'ai essayé une autre version pour voir mais sa ne fonctionne toujours pas. Pour celle-là il m'indique une erreur d'exécution '1004'.

    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
    Sub VS_Click()
     
    i = 1
     
        If Worksheets("Fichier Sociétés").Range(i, 1) <> " " Then i = (i + 1)
     
     
    Worksheets("Fichier Sociétés").Cells(i, 1) = i
    Worksheets("Fichier Sociétés").Cells(i, 2) = TextBox1.Value
    Worksheets("Fichier Sociétés").Cells(i, 3) = TextBox2.Value
    Worksheets("Fichier Sociétés").Cells(i, 4) = TextBox3.Value
    Worksheets("Fichier Sociétés").Cells(i, 5) = TextBox4.Value
    Worksheets("Fichier Sociétés").Cells(i, 6) = TextBox6.Value
    Worksheets("Fichier Sociétés").Cells(i, 7) = TextBox5.Value
    Sheets("Fichier Sociétés").Select
     
    End Sub

  5. #5
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Je vais de reprendre la dernière version en changeant le "range" par un "cells" et sa fonctionne !!!

    Merci beaucoup.

    Fausse joie.

    La ligne est bien recopier mais elle écrit toujours sur la deuxième ligne du tableau même si il y a déjà quelque chose d'écrit.

  6. #6
    Chroniqueur Actualités
    Avatar de Michael Guilloux
    Homme Profil pro
    Data Consultant
    Inscrit en
    Juillet 2013
    Messages
    2 908
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Data Consultant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 908
    Points : 87 592
    Points
    87 592
    Billets dans le blog
    2
    Par défaut
    @JGabriel,
    En supposant que la première ligne vide est déterminée par la première cellule vide de la colonne A, essaie ce 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
    Sub VS_Click()
    With ThisWorkbook.Sheets("Fichier Sociétés")
    Dim num As Long
       num = Range("A" & .Rows.Count).End(xlUp).Row 'dernière cellule non vide dans la colonne A
       num = num + 1 ' première cellule vide dans la colonne A
       .Cells(num, 1).Value = TextBox1.Value
       .Cells(num, 2).Value = TextBox2.Value
       .Cells(num, 3).Value = TextBox3.Value
       .Cells(num, 4).Value = TextBox4.Value
       .Cells(num, 5).Value = TextBox5.Value
       .Cells(num, 6).Value = TextBox6.Value
       .Cells(num, 7).Value = TextBox7.Value
    End With
    End Sub
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  7. #7
    Candidat au Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Nouvelle version
    Bonjours tous le monde,

    Je vous envois la dernier version que j'ai réalisé suivant vos divers conseils. La copie de données dans le tableau se fait bien mais elle continu d'écrire toujours sur la même ligne.

    Les boucles if servent à générer mon codes clients n'y faite pas attention.

    Merci pour le coup de main.

    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
    Sub VS_Click()
     
    With ThisWorkbook.Sheets("Fichier Sociétés")
    Dim num As Long
        num = Range("C" & .Rows.Count).End(xlUp).Row        ' Dernière cellule non vide dans la colonne C
        num = num + 1                                       ' Première cellule vide dans la colonne C
     
        If num < 11 Then .Cells(num, 1).Value = "S00"       ' Boucles IF générant le code client sou le format : S001 ... S010 ... S100 ... S1000
     
        If num < 101 Then
            If num > 10 Then .Cells(num, 1).Value = "S0"
        End If
     
        If num > 1001 Then .Cells(num, 1).Value = "S"
     
       .Cells(num, 2).Value = (num - 1)                     ' Détermination du numéro client suivant la ligne du tableur
       .Cells(num, 3).Value = TextBox1.Value                ' Recopies dans données saisies dans leurs colonnes respectives
       .Cells(num, 4).Value = TextBox2.Value
       .Cells(num, 5).Value = TextBox3.Value
       .Cells(num, 6).Value = TextBox4.Value
       .Cells(num, 7).Value = TextBox5.Value
       .Cells(num, 8).Value = TextBox6.Value
       .Cells(num, 9).Value = TextBox7.Value
     
       TextBox1.Value = ""                                  ' Efface toutes les données saisies dans TextBox
       TextBox2.Value = ""
       TextBox3.Value = ""
       TextBox4.Value = ""
       TextBox5.Value = ""
       TextBox6.Value = ""
       TextBox7.Value = ""
     
       .Select                                              ' Affiche la Feuille " Fichier Sociétés "
     
    End With
     
    End Sub

Discussions similaires

  1. [XL-2007] Rechercher l'occurrence d'un mot situé dans un tableau sur une autre feuille (VBA).
    Par tontonTom dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 08/02/2015, 21h35
  2. Réponses: 6
    Dernier message: 16/06/2014, 14h11
  3. Réponses: 8
    Dernier message: 31/03/2013, 20h28
  4. [XL-2007] récupération de données à partir d'un tableau sur une autre feuille
    Par cindy6311 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 05/08/2009, 14h34
  5. [XL-2003] Retrouver les références de cellules dans les textbox de mon USF
    Par patrick60 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 30/07/2009, 11h51

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