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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    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 chevronné
    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
    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?

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

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 976
    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
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    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
    Futur Membre du Club
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Février 2014
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Février 2014
    Messages : 4
    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 976
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : Juillet 2013
    Messages : 2 976
    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

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