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 :

Création nouvelle ligne dans excel lorsqu'un nom s'ajoute dans colonne A


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Points : 8
    Points
    8
    Par défaut Création nouvelle ligne dans excel lorsqu'un nom s'ajoute dans colonne A
    Bonjour à vous,

    J'ai une application vb plutot simple qui ajoute des nom (colonne A) et un montant (colonne B) sur une feuille excel à mesure que je clique un bouton "valider" sur un Userform. Une fois rendu dans excel, le montant est soumis a d'autre calcul dans les colonnes C,D,E,F,etc...j'aimerais maintenant, qu'a mesure ou un nom et un montant s'ajoute dans la colonne A et B dans excel, la mise en forme ainsi que les formules de la ligne 1 se copie dans la nouvelle ligne oÙ le nouveau nom est inscrit.
    Donc si j'ai deux nom, 2 lignes seront remplie avec les formules et la mise en formes...si par exemple j'ajoute un 3 eme nom et montant par le biais de ma userform, avant meme que le nom et montant soit transféré, la mise en forme et les formules se copiront pour ainsi recevoir le meme traitement que les lignes précédentes...
    Que dois-je faire ?!

    J'espere ne pas trop vous mélanger !!

    Merci beaucoup

  2. #2
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Slt, north_
    Serait-il possible de voir le code, que tu as déjà, Stp? Ce sera plus facile pour t'aider.
    Merci.

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    en fait il n'y en a pas encore car cest qu'une simple feuille excel avec des soustraction et multiplication ! l'application VB ne fait que mettre des données dans les 2 premieres colonnes de la feuille.
    Ce que je cherche a faire plus précisément, c'est que lorsquune nouvelle donnée apparait sur la feuille, les multiplication et soustraction se fasse sur cette nouvelle donnée !

    Voici mon fichier, jai écrit sur la feuille quesque j'aimerais quil se passe lorsquune donnée est validé..
    Merci
    Fichiers attachés Fichiers attachés

  4. #4
    Membre chevronné Avatar de rvtoulon
    Homme Profil pro
    Agent Technique
    Inscrit en
    Mars 2009
    Messages
    1 042
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Agent Technique
    Secteur : Santé

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 042
    Points : 2 003
    Points
    2 003
    Par défaut
    Slt, north_
    j'ai regardé ton fichier, voila ce que j'aurais fait avec le 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
    Private Sub CommandButton5_Click()
    Dim derlign As Long
    Sheets("Données").Activate
      derlign = [A65536].End(xlUp).Offset(1, 0).Row
         Range(Cells(derlign - 1, 1), Cells(derlign - 1, 8)).Copy
         Range(Cells(derlign, 1), Cells(derlign, 8)).PasteSpecial Paste:=xlPasteAll
     
     Application.CutCopyMode = False
     
         Cells(derlign, 1).Value = UserForm1.TextBox2.Value
         Cells(derlign, 2).Value = UserForm1.TextBox3.Value
     
    UserForm1.TextBox2.Value = ""
    UserForm1.TextBox3.Value = ""
    End Sub
    Tiens moi au courant.
    A+

  5. #5
    Expert éminent
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    3 906
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France

    Informations professionnelles :
    Activité : La très haute tension :D
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2002
    Messages : 3 906
    Points : 8 539
    Points
    8 539
    Par défaut
    Salut
    Peut etre comme ca

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    Private Sub CommandButton5_Click()
    On Error Resume Next
    Application.ScreenUpdating = False
    With Sheets("Données").Cells(Rows.Count, "A").End(xlUp).Offset(1, 0)
        Range("A2:H2").Copy
        .PasteSpecial xlPasteFormats
        .PasteSpecial xlPasteFormulas
        .Value = UserForm1.TextBox2.Value
        .Offset(0, 1) = UserForm1.TextBox3.Value
    End With
    Application.CutCopyMode = False
    Application.ScreenUpdating = True
    End Sub

  6. #6
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    si tu ajoutes ça au code de ton bouton valider ça suffira peut être:


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    With Range("C1").End(xlDown).Range("A1:D1")
        .AutoFill Destination:=.Range("A1:D2")
    End With
    ça ne gère que l'ajout d'une ligne à la fois

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2009
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2009
    Messages : 13
    Points : 8
    Points
    8
    Par défaut
    Merci beaucoup RVToulon, Qwazerty et Benjile !
    J'adore votre efficacité.

    -Chacune de vos solutions fonctionnent, mais je me questionne a savoir comment est ce que la solution de Benjile peut etre aussi courte et faire la meme chose ?

    -Léger petit probleme, surment facilement corrigeable, lorsque aucun nom et montant est entré et que je valide les premieres données, le programme copie les titres, étant donné quil copie la ligne précédente ! est ce que ce serait facile de faire démarer la premiere copie de la ligne précédente a partir de la deuxieme entrée ? la premiere ligne il y aurait les formules par défaut, et les autres se copieraient ensuite...

    -Troisieme chose, est ce quil y a moyen de reporter les données provenant d'excel directement sur ma userform ? car maintenant que vous comprenez mon petit programme, jaimerais que ce soit tout simple avec un seul application. Par exemple, dans un label, on verrait les données sur les lignes calculé par excel et dans des textbox, il y aurait moyen décrire les montants recu, comme les colonnes rose dans la feuille excel. Comme sa, on aurait pas a voir ce quil se passe en arriere !

    Merci pour votre précieuse aide, cest incroyable comment je commence a apprécier VB et son utilité dans tous les petites complication de la vie !

  8. #8
    Membre expérimenté
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Avril 2008
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2008
    Messages : 875
    Points : 1 394
    Points
    1 394
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    If Not (Trim(TextBox2.Value) = "" And Trim(TextBox3.Value = "")) Then
         With Range("C1").End(xlDown).Range("A1:D1")
               .AutoFill Destination:=.Range("A1:D2")
         End With
    End If

Discussions similaires

  1. Création nouvelle ligne d'un tableau côté client
    Par Marc31 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/06/2014, 18h34
  2. Réponses: 6
    Dernier message: 18/01/2013, 03h14
  3. [Toutes versions] Recupérer les noms des feuilles dans Excel
    Par cinfo84 dans le forum Access
    Réponses: 3
    Dernier message: 01/08/2012, 00h10
  4. Création nouvelle ligne
    Par seby3 dans le forum Macros et VBA Excel
    Réponses: 17
    Dernier message: 19/04/2012, 17h37
  5. [Excel] Chercher un nom de cellule dans des formules
    Par conconbrr dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 21/07/2006, 18h43

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