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 :

Ajouter nouvelle ligne a partir du haut


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut Ajouter nouvelle ligne a partir du haut
    Bonjour a tous et a toutes,

    A partir d'une feuille A d'un classeur , je recopie les lignes de cette feuille A dans une nouvelle feuille B dans le meme classeur . Je souhaite simplement que lorsqu'une nouvelle ligne est ajouté dans la feuille A, que je puisse via une macro ajouter cette nouvelle ligne dans la feuille B mais au debut de la feuille, c'est a dire a partir de la ligne 2 vu que la premiere ligne contient des libellés.
    Je ne desire pas a chaque fois recopier tout le contenu de la feuille A dans B (ce qui serait plus simple), mais je desire garder un historique des transactions précédentes dans la feuille B plus les nouvelles uniquement de la feuille A (la feuille A est généré a partir d'une requete sql query)

    Je ne sais pas si je suis clair, faites le moi savoir svp et merci d'avance pour votre aide.

  2. #2
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir Mimosa,
    il faudrait savoir si tu veux que le code s'execute après la saisie de la derniere cellule ou avec un bouton,

    Je m'explique, tu dois, par exemple, remplire a3, a4, a5, a6 et on provoque le code après la saisie de a6 ou avec un bouton ou autrement....
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  3. #3
    Membre Expert Avatar de laetitia
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    1 281
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Décembre 2002
    Messages : 1 281
    Par défaut
    bonjour Mimosa l ami casefayere le forum comme je comprends!!!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test5()
    Application.ScreenUpdating = False
    Sheets("b").Select: Rows("2:2").Select: Selection.Insert Shift:=xlDown
    Sheets("a").Range("a65536").End(xlUp).EntireRow.Copy _
    Destination:=Sheets("b").Range("A2")
     End Sub
    ps l ami casefayere d accord avec toi c est du brute on va attendre les news pour voir

  4. #4
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Bonsoir Laetitia,

    ton code est parfait, il ne reste plus qu'a savoir quand l'évenement doit etre provoqué, c'etait le but de ma question à Mimosa,

    Bonne soirée (tu as toujours des codes clairs et nets)
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

  5. #5
    Membre éclairé
    Inscrit en
    Mars 2008
    Messages
    257
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 257
    Par défaut
    Salut a vous deux,

    le tout s'execute a partir d'un bouton. Lorsque je clique dessus, il va me recopier les nouvelles lignes de la feuille A dans la feuille B. Les nouvelles lignes seront ajoutés a partir du haut et non pas en bas a la suite des donnees deja existantes dans la feuille B. (l'idee est de voir toutes les nouvelles transactions en premier toujours)

    A vrai dire, j'ai deja ce code qui fonctionne bien mais seulement lorsque la feuille B est encore vide.. Lorsque la feuille B contient deja des données, c'est la que le probleme se pose et que mon code n'est plus efficace car ce qu'il fait, est qu'il ajoute effectivement la nouvelle ligne en haut mais ecrase mes champs libelllés.

    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
    Sub Mise()
     
    Dim i, j, x As Integer
    Dim temp As Integer
    x = 2
     
     
     
            For i = 2 To 18 '18 est la colonne commentaires
            temp = 0
            j = 1
                If Sheet2.Cells(i, j) = Sheet3.Cells(x, j) Then
                    For z = 2 To 18 'Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
                        Sheet2.Cells(i, z) = Sheet3.Cells(x, z)
                    Next
                x = x + 1
                temp = 1
                Else
                If temp = 0 Then
                    If Sheet2.Cells(i, j) = "" Then
                        For j = 1 To 18 'Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
                            Sheet2.Cells(i, j) = Sheet3.Cells(x, j)
                        Next
                    Else
                        For j = 1 To 18 'Sheet3.Cells(Rows.Count, 1).End(xlUp).Row
                            Sheet2.Cells(i - 1, j) = Sheet3.Cells(x, j)
                        Next
     
                    End If
                    x = x + 1
                End If
                End If
            Next
     
    End Sub
    Merci de votre aide

  6. #6
    Expert confirmé Avatar de casefayere
    Homme Profil pro
    RETRAITE
    Inscrit en
    Décembre 2006
    Messages
    5 138
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Ardennes (Champagne Ardenne)

    Informations professionnelles :
    Activité : RETRAITE
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2006
    Messages : 5 138
    Par défaut
    Regardes bien le code à Laetitia, il est à executer à partir d'un autre bouton ou d'un évenement
    Cordialement,
    Dom
    _____________________________________________
    Vous êtes nouveau ? pour baliser votre code, cliquer sur cet exemple : Anomaly
    pensez à cliquer sur :resolu: si votre problème l'est
    Par contre, il est désagréable de voir une discussion résolue sans message final du demandeur (satisfaction, désarroi, remerciement, conclusion...)

Discussions similaires

  1. Réponses: 11
    Dernier message: 19/04/2012, 10h55
  2. Ajouter nouvelle ligne datagridview
    Par bidbid21 dans le forum VB.NET
    Réponses: 7
    Dernier message: 16/01/2012, 09h03
  3. ajout nouvelles lignes dans gridview
    Par sky88 dans le forum ASP.NET
    Réponses: 0
    Dernier message: 05/02/2010, 14h44
  4. Réponses: 7
    Dernier message: 11/06/2007, 20h39
  5. Réponses: 14
    Dernier message: 22/09/2005, 16h49

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