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 :

Remplir base de donnée avec incrémentation


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    fredoud
    Invité(e)
    Par défaut Remplir base de donnée avec incrémentation
    Étant novice en userform, je vous sollicite pour mon application. Ce que je souhaite faire sur une nouvelle ligne en respectant les cellules précédentes vides:
    - compléter la base avec incrémentation en colonne A sur 1ère ligne vide
    - dans userform je voudrais sélectionner dans le champ "nom et prénom", un nom client lié à la feuille liste si pas trouver, pouvoir l’écrire manuellement et que cela s'ajoute automatiquement à cette liste avec trie alphabétique. De même pour le champ "connaissance", "ville", "FAI" et "Antivirus"
    - quand on coche la question " y-a-t-il un achat ?" je voudrais que le chiffre 1 s'affiche dans la colonne "achat" dans la feuille "Base
    - est-il possible pour les champs "année" et "mois" que le combobox soit rempli automatiquement par rapport au jour système, je m'explique : si nous sommes le 20 juin 2011, et bien dans année, 2011 est affiché et dans mois, juin est affiché avec possibilité de modifier manuellement l'un ou l'autre
    - remplir obligatoirement le champ CA sinon un messbox s'affiche disant que le champ montant n'est pas rempli de même pour le champ filleul si dans le champ connaissance, "client" est sélectionné
    - utilisé cet userform en mode ajout, visualisation ou modification, c'est à dire, lorsque je me déplace dans la base, je fais un double clics (pour le 2 dernières fonctionnalités) et que l'userform s'affiche avec les informations de cette dernière
    J'ai commencé mais franchement ça me parait compliquer, vous les génies en userform et vba, vous avez surement la solution. Pouvez-vous m'aider, ça fait quelques jours que je lis et recherche sur des forums et autres, c'est assez complexe quand on n'est pas de la partie, je m'y perds un peu...

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Bonjour
    Mauvaise demande. J'aurais aimé te dépanner sur un point précis mais, là, tu propose un cahier de charges détaillé et encore sans prévisions financières.
    Le forum ici est pour l'entraide sur des points précis mais en aucun cas un moyen de recherche d'une solution clé en main.
    D'autant plus, un sujet = une question précise.

  3. #3
    fredoud
    Invité(e)
    Par défaut
    Étant novice en userform, je vous sollicite pour mon application. Ce que je souhaite faire sur une nouvelle ligne en respectant les cellules précédentes vides:
    - compléter la base avec incrémentation en colonne A sur 1ère ligne vide
    - dans userform je voudrais sélectionner dans le champ "nom et prénom", un nom client lié à la feuille liste si pas trouver, pouvoir l’écrire manuellement et que cela s'ajoute automatiquement à cette liste avec trie alphabétique. De même pour le champ "connaissance", "ville", "FAI" et "Antivirus"

    Merci pour votre coup de même et désolé de ma demande précédente un peu charger je l'avoue.

    Fred
    Dernière modification par AlainTech ; 29/06/2011 à 22h51. Motif: Fusion de 2 messages

  4. #4
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Ci-joint lien pour trouver la dernière cellule remplie
    http://www.developpez.net/forums/d45...gnees-feuille/

  5. #5
    fredoud
    Invité(e)
    Par défaut
    Bonsoir et merci Mercatog d'avoir répondu aussi rapidement

    J'ai apporté quelques modification à mon fichier mais cela ne fonctionne de plus je n'y connait vraiment pas grand chose en code vba !

    Un petit coup de pouce

    Merci

    fred
    Dernière modification par fredoud ; 28/06/2011 à 16h26.

  6. #6
    fredoud
    Invité(e)
    Par défaut incremente une base
    Bonjour,

    Je souhaite faire un récapitulatif pour un client (feuille "base") et l'afficher dans une nouvelle feuille "Recapitulatif_client" mais voilà tout fonctionne sauf que la ligne A correspondant au entêtes (nom, villes, date, etc.) des colonnes n'est pas copier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Sub Recap_client()
    Dim Plage As Range, F As Worksheet
    Set F = Sheets("Base")
    With Sheets("Recapitulatif_client")
        .Rows("1:" & .Range("A1").SpecialCells(xlCellTypeLastCell).Row).Delete
        F.AutoFilterMode = False
        Set Plage = F.Range("B2:N" & F.Cells(Rows.Count, "A").End(xlUp).Row)
        Plage.AutoFilter 1, [Param_analyse_clients_libelle]
        Plage.SpecialCells(xlCellTypeVisible).Copy .[A2]
        F.AutoFilterMode = False
        .Activate
    End With
    End Sub
    Qu'est-ce qu'il faut modifier pour que les entetes apparaissent dans la feuille (recapitulatif client.

    Merci

  7. #7
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Essaies ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Set Plage = F.Range("B1:N" & F.Cells(F.Rows.Count, "A").End(xlUp).Row)

  8. #8
    Membre averti
    Homme Profil pro
    Artisan en retraite
    Inscrit en
    Juin 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Artisan en retraite
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2008
    Messages : 51
    Par défaut
    Bonjour,

    Merci mercatog.... c'est exactement ce que je recherchais (ça fait un bout de temps que je voyage sur le site pour trouver...!)
    Comme quoi, tout arrive!

    Bonne journée
    Cordialement
    Magnum812

  9. #9
    fredoud
    Invité(e)
    Par défaut
    Bonjour,

    Mercatog, grâce à ta participation, j'avance petit à petit dans mon projet.

    Dans ma question précédente concernant l'incrémentation, ça fonctionne sauf que
    lorsque je clique sur "ajouter", il incrémente bien sur la première ligne vide mais inscrit les données sur la ligne du dessous dès que je clique sur "valider". Que faut-il écrire exactement ? Voici ce que donne le 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
    17
    18
    19
    20
    21
    22
    Private Sub CmdAjouter_Click()
     
    Dim NewLig As Long
     With Sheets("Base")
        NewLig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        .Range("A" & NewLig).Value = Val(.Range("A" & NewLig - 1).Value) + 1
    End With
     
      Me.ComboBox_nom = ""
      Me.TextBox_pro = ""
      Me.CheckBox_Achat = False
      Me.ComboBox_mois.ListIndex = Month(Now()) - 1
      Me.ComboBox_annee = Format(Center) & Year(Now)
      Me.TextBox_date = Format(Center) & Date
      Me.TextBox_km = Format("0.00") & ""
      Me.TextBox_CA = Format("0.00") & ""
      Me.ComboBox_connais = ""
      Me.ComboBox_parrainage = ""
      Me.ComboBox_ville = ""
      Me.ComboBox_FAI = ""
      Me.ComboBox_antivirus = ""
    End Sub
    .

    Je souhaite aussi que les TextBox_km et TextBox_CA renvoient la valeur formaté en nombre avec 2 décimales. Les ComboBox Annee et TextBoxDate soit centré sur la colonne

    Merci d'avance.

  10. #10
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pourquoi Ajouter puis valider?
    Je ne vois pas ton code valider

  11. #11
    fredoud
    Invité(e)
    Par défaut
    Bonjour Mercatog,

    Valider me sert à enregistrer les donner pour une nouvelle fiche( en faisant "ajouter") et aussi à valider les modifications en mode visualisation qui viendra après.

    le code du bouton valider :

    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
    Private Sub CmdValider_Click()
    Dim ligne As Long
    With Sheets("Base")
    ligne = .Range("A" & Rows.Count).End(xlUp).Offset(1, 0).Row
       .Cells(ligne, 2) = Application.Proper(Me!ComboBox_nom)
       .Cells(ligne, 3) = Application.Proper(Me.TextBox_pro)
       .Cells(ligne, 4) = Me.TextBox_km
       .Cells(ligne, 5) = Me.CheckBox_Achat  'OuiNon(Me.Achat)
       .Cells(ligne, 6) = Me.ComboBox_annee
       .Cells(ligne, 7) = Me.ComboBox_mois
       .Cells(ligne, 8) = Me.TextBox_date
       .Cells(ligne, 9) = Me.TextBox_CA
       .Cells(ligne, 10) = Application.Proper(Me.ComboBox_connais)
       .Cells(ligne, 11) = Me.ComboBox_parrainage
       .Cells(ligne, 12) = Application.Proper(Me.ComboBox_ville)
       .Cells(ligne, 13) = Application.Proper(Me.ComboBox_FAI)
       .Cells(ligne, 14) = Application.Proper(Me.ComboBox_antivirus)
    End With
    End Sub
    Merci, franchement sympa l'aide que tu me donnes

  12. #12
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Pas besoin du bouton ajouter

    Dans la validation, on transfert les données et on appelle la sub Reinit qui vide les contrôles de mon usf
    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
    Private Sub CmdValider_Click()
    Dim NewLig As Long
     
    With Sheets("Base")
        NewLig = .Cells(.Rows.Count, "A").End(xlUp).Row + 1
        .Range("A" & NewLig).Value = Val(.Range("A" & NewLig - 1).Value) + 1
        .Range("B" & NewLig).Value = Application.Proper(Me.ComboBox_nom)
        .Range("C" & NewLig).Value = Application.Proper(Me.TextBox_pro)
        '...etc
    End With
    Call Reinit
    End Sub
     
    'Vidage des controles de l'usf
    Private Sub Reinit()
     
    Me.ComboBox_nom = ""
    Me.TextBox_pro = ""
    Me.CheckBox_Achat = False
    Me.ComboBox_annee = ""
    Me.ComboBox_mois = ""
    Me.ComboBox_date = ""
    Me.TextBox_km = ""
    Me.TextBox_CA = ""
    Me.ComboBox_connais = ""
    Me.ComboBox_parrainage = ""
    Me.ComboBox_ville = ""
    Me.ComboBox_FAI = ""
    Me.ComboBox_antivirus = ""
    End Sub

Discussions similaires

  1. Remplir une base de données avec un combo
    Par slimabdi dans le forum NetBeans
    Réponses: 13
    Dernier message: 16/07/2014, 12h50
  2. remplir base de données avec fichier csv
    Par Xeuch dans le forum Langage
    Réponses: 8
    Dernier message: 03/04/2013, 09h11
  3. meilleure base de données avec java
    Par mial dans le forum JDBC
    Réponses: 11
    Dernier message: 10/11/2010, 11h49
  4. Remplir ma base de données avec Oracle
    Par sandra83 dans le forum Débuter
    Réponses: 3
    Dernier message: 28/09/2010, 11h05
  5. Modifier le nom d'une base de donnée avec erreur sy
    Par mmn dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 25/11/2003, 10h12

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