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 :

Insertion de ligne automatique


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2016
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 90
    Par défaut Insertion de ligne automatique
    Bonjour,

    Je fais appel à vos connaissances car j'ai un petit problème.

    Voilà, j'aimerais créer un code automatique pour insérer une ligne par rapport à une donnée.

    Je m'explique, la plupart des cellules sont automatisées par des formules de calculs. Je voudrais insérer une ligne au moment où je modifie la valeur d'une cellule de la colonne "Pré Mandatement". Si cette valeur n'est pas égale à la valeur contenu dans la colonne AA "Somme prise en compte" alors je voudrais qu'une ligne soit insérer en dessous de la ligne active.

    J'aimerais par la suite que la ligne insérée contienne les formules de calcul des autres lignes et que certaines cellules comme numéro du tiers, fournisseur et opération se fusionne en même temps .

    J'ai essayé de créer le code en vbe mais je n'arrive pas à faire l'insertion d'une ligne. Pourriez-vous m'aider s'il vous plait ?

    Je vous remercie par avance et je vous souhaite une bonne journée.

    Ci-joint le document excel.
    TABLEAU DE SUIVI.xlsx

    Kris41.

  2. #2
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Kris41 Voir le message
    J'ai essayé de créer le code en vbe mais je n'arrive pas à faire l'insertion d'une ligne.
    https://msdn.microsoft.com/fr-fr/lib.../ff840310.aspx

    Lire également : https://www.developpez.net/forums/d8...s-discussions/

  3. #3
    Membre actif
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2016
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 90
    Par défaut
    Bonsoir,

    J'arrive par le code vba a insérer une ligne mais pas au moment que je veux ni a l'endroit désiré.

    J'ai fait quelque modification au niveau de mon tableau pour me simplifier un peu le travail. Du coup j'ai intégré une colonne qui determine le déclenchement de l'insertion.

    L'exemple serais que si la valeur de la cellule de cette colonne n'est pas égale à zéro alors j'insert une ligne en dessous de la ligne active.

    J'espère pouvoir avoir de l'aide pour réaliser cette action.

    Je voys souhaite une bonne soirée.

  4. #4
    Expert confirmé
    Homme Profil pro
    aucune
    Inscrit en
    Avril 2016
    Messages
    7 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 84
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : aucune

    Informations forums :
    Inscription : Avril 2016
    Messages : 7 563
    Par défaut
    Bonjour
    1) tu es ici dans la section Excel et non VBA/Excel. L'inserton d'une ligne depuis Excel ne peut se faire qu'en accomplissant les gestes nécessaires (donc pas d'automatisme)
    2) Utiliser l'évènement Change depuis VBA (autre section de ce forum) serait par ailleurs extrêmement maladroit
    - L'évènement Change est déclenché dès lors que l'on quitte une cellule dans laquelle on a saisit quoi que ce soit, y compris pour remettre la valeur antérieure, y compris également si l'on se ravise et que l'on efface !
    Je ne saurais dans ces conditions suffisamment insister pour que l'insertion d'une ligne ne se fasse qu'à la demande expresse de l'utilisateur (bouton, ou autre mécanisme) . Et donc : exit "l'automatisme".

  5. #5
    Membre actif
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2016
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 90
    Par défaut
    Voici le code que j'ai fait mais qui ne fonctionne pas.

    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
    Private Sub Worksheet_Calculate()
     
    Dim Ligne As Long
     
    For Ligne = ActiveSheet.Cells("CelluleCle").End(xlUp).Row To 2 Step -1
     
    If Cells(Ligne, "CelluleCle") <> 0 Then
     
    Range("Ligne_Exemple").Select
    Selection.Copy
    Cells(Ligne, "CelluleCle").Select
    Selection.Insert Shift:=xlDown
     
    End If
     
    Next
     
    End Sub
    CelluleCle = cellule de la colonne qui déclenche l'action
    Ligne_Exemple = la ligne que je veux copier

    J'obtient une erreur d'exécution 5.

  6. #6
    Expert éminent Avatar de Menhir
    Homme Profil pro
    Ingénieur
    Inscrit en
    Juin 2007
    Messages
    16 037
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2007
    Messages : 16 037
    Par défaut
    Citation Envoyé par Kris41 Voir le message
    L'exemple serais que si la valeur de la cellule de cette colonne n'est pas égale à zéro alors j'insert une ligne en dessous de la ligne active.
    Pour la ligne en dessous de la cellule active :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ActiveCell.Offset(1, 0).EntireRow
    C'est sur elle qu'il faut appliquer l'Insert.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
        Private Sub Worksheet_Calculate()
    Il vaudrait mieux utiliser Worksheet_Change et remplacer ActiveCell par le paramètre de cette macro dans le code que je t'ai proposé.
    https://msdn.microsoft.com/fr-fr/lib.../ff839775.aspx

  7. #7
    Membre actif
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2016
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 90
    Par défaut
    Bonjour,

    J'ai essayé avec le worksheet_change mais cela ne fonctionne pas. Je pense que cela est dû par le contenu les cellules concernées qui est calculé.

    Ensuite je n'arrive pas à faire la référence a ces cellules pour dire que si elles sont différentes de zéro alors j'insère une ligne en dessous.

    Je cherche encore sur le net voir si je peux y arriver.

    En l'attente de votre aide, je vous souhaite une bonne fin de journée.

  8. #8
    Membre actif
    Homme Profil pro
    Chef de projet
    Inscrit en
    Avril 2016
    Messages
    90
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2016
    Messages : 90
    Par défaut
    Bonsoir,

    Je te remercie Menhir pour ton aide en effet je comprend mieux le Worksheet_Change. J'ai réussi à avancer un peu dans mon code. Bon je ne l'ai pas encore terminer mais j'ai réussi a obtenir l'ouverture d'un msgbox lorsque les valeurs cibles changent.

    Encore merci à toi Menhir.

    Je vous tiens au courant dans l'avancement de mon code.

    Bonne soirée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [XL-2016] Insertion de ligne Automatique d'un TABLEAU
    Par stef3700 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 16/05/2017, 14h36
  2. [XL-2007] Insertion de lignes automatiques avec copie suivant condition
    Par Toresupra dans le forum Excel
    Réponses: 4
    Dernier message: 20/03/2015, 15h23
  3. Réponses: 2
    Dernier message: 19/06/2014, 15h20
  4. [VBA-E]Insertion de ligne automatique
    Par binouse18 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 07/05/2007, 16h26
  5. [VBA-E] Incrémentation automatique d'une valeur suite à l'insertion de ligne
    Par abdelghani_k dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 31/01/2007, 14h26

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