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 :

Insérer une ligne en recopiant les formules et mise en forme


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé
    Homme Profil pro
    CONSEIL
    Inscrit en
    Avril 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CONSEIL
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 64
    Par défaut Insérer une ligne en recopiant les formules et mise en forme
    Bonjour, je fait appelle à l'aide

    Voilà après plusieurs recherche sur plusieurs forum, bien que j'ai trouver des choses qui peut m'aider dans mon projet d'étude

    J'ai deux tableaux sur excel chacune sont sur une feuille (LOTS N°1 et BORDEREAU 1)

    Dans mon tableau1(onglet:LOTS N°1)
    Je voudrais insére une ligne qui recopie tout les formules et mise en forme (un copie de ligne) de la ligne ci-dessus et actualiser la numérotation

    Dans mon tableau2(onglet:BORDEREAU 1)
    Je voudrais qui m’insère automatiquement 3 lignes a la suite de la numérotation correspondant au tableau1

    Donc pour résumé je voudrais que a chaque fois que j'insere une ligne dans le tableau1, elle insere automatiquement 3 lignes dans le tableau2

    J'ai fait une macro "AJOUTER ARTICLE" qui fait un copie/colle de la ligne ci-dessus, qui ressemble bien a ce que je voudrais dans mon tableau1

    Je vous joint mes 2 tableaux avec des explications sur chaque tableau et j'ai ajouter un onglet "AJOUTER ARTICLE" qui schématise mon principe

    Merce d'avance

    1er ligne

  2. #2
    Expert confirmé Avatar de jfontaine
    Homme Profil pro
    Contrôleur de Gestion
    Inscrit en
    Juin 2006
    Messages
    4 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Contrôleur de Gestion

    Informations forums :
    Inscription : Juin 2006
    Messages : 4 756
    Par défaut
    Bonjour,

    La ligne ci dessous copie la ligne 1 sur 3 lignes de la feuille 2
    Il te reste à adapter
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("Feuil1").Rows("1").Copy Sheets("Feuil2").Rows("1:3")

  3. #3
    Membre Expert
    Homme Profil pro
    retraité
    Inscrit en
    Mars 2013
    Messages
    885
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 885
    Par défaut inserer une ligne en recopiant les formule etmise en forme
    bonjour,

    voici un essai bout de code de débutant.
    des gens plus expérimentés que moi trouverons à l'améliorerer et le completer.

    attention :
    feuille 1 : suppose que la dernière écriture est celle à incrémenter
    feuille 2 : suppose les deux dernières cellules "a" vides.

    cordialement.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre confirmé
    Homme Profil pro
    CONSEIL
    Inscrit en
    Avril 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CONSEIL
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 64
    Par défaut
    Bonjour

    Merci pour le code, c'est tout a fait le principe de ce que je voudrais

    donc je voudrais faire appel a ceux qui peuvent m'aider a améliorer ce code ci-dessus

    Voilà, j'ai testé le code dans mon fichier, j'ai adapter le code mais j'ai des erreurs qui me vient,
    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
    Sub lot_bordereau()
        LOTS N°1.Select 'feuille LOTS N°1 du fichier
        derlig1 = Range("a65000").End(xlUp).Row     ' N° dernière ligne
        Range("a" & derlig1 & ":f" & derlig1).Copy Range("a" & derlig1 + 1) 'copie la dernière ligne
        remplace = Right(Range("A" & derlig1).Value, 1)   'recherche le dernière caractere de la cellule a
        ' remplissage de la cellule a incrémentée
        Range("a" & derlig1 + 1).Value = Left(Range("A" & derlig1).Value, 6) & Trim(Str(Val(remplace) + 1))
        Range("b" & derlig1 + 1 & ":d" & derlig1 + 1).ClearContents  'vide les celules b, c dt d
        
      BORDEREAU1.Select 'feuille BORDEREAU 1 du fichier
        derlig2 = Range("a65000").End(xlUp).Row
        Range("a" & derlig2 & ":e" & derlig2 + 2).Copy Range("a" & derlig2 + 3)
        Range("a" & derlig2 + 3 & ":e" & derlig2 + 5).ClearContents  'vide les celules b, c dt d
        Feuil1.Range("a" & derlig1 + 1).Copy Feuil2.Range("a" & derlig2 + 3)
    End Sub
    De plus je voudrais modifié le code au niveau "remplissage de la cellule a incrémenté" je voudrais garde la même structure que j'ai dans ma feuille Bordereau

    merci

  5. #5
    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
    Bonjour,

    Regardes bien ce code et réponds à la question posée à l'intérieur, en espèrant t'aider...
    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 lot_bordereau()
      With Sheets("LOTS N°1") 'feuille LOTS N°1 du fichier
        derlig1 = .Range("A" & .Rows.Count).End(xlUp).Row     ' N° dernière ligne
        .Range("a" & derlig1 & ":f" & derlig1).Copy .Range("a" & derlig1 + 1) 'copie la dernière ligne
        remplace = Right(.Range("A" & derlig1).Value, 1)   'recherche le dernière caractere de la cellule a
        ' remplissage de la cellule a incrémentée
        .Range("a" & derlig1 + 1).Value = Left(.Range("A" & derlig1).Value, 6) & Trim(Str(Val(remplace) + 1))
        .Range("b" & derlig1 + 1 & ":d" & derlig1 + 1).ClearContents  'vide les celules b, c dt d
      End With
      With Sheets("BORDEREAU1") 'feuille BORDEREAU 1 du fichier
        derlig2 = .Range("A" & .Rows.Count).End(xlUp).Row
        .Range("a" & derlig2 & ":e" & derlig2 + 2).Copy .Range("a" & derlig2 + 3)
        .Range("a" & derlig2 + 3 & ":e" & derlig2 + 5).ClearContents  'vide les celules b, c dt d
        'ci-dessous qu'est-ce que "Feuil1" et "Feuil2"
        'Feuil1.Range("a" & derlig1 + 1).Copy Feuil2.Range("a" & derlig2 + 3)
      End With
    End Sub
    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...)

  6. #6
    Membre confirmé
    Homme Profil pro
    CONSEIL
    Inscrit en
    Avril 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CONSEIL
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 64
    Par défaut
    Excuse moi , mais je comprend pas bien le code, je vien de le test pour comprendre comment elle marche, en mettant un point d'arret

  7. #7
    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
    Je me suis contenté de reprendre ton code en eliminant ce qui est inutile, entre autre, les "Select". J'ai mis "With" et "End With" afin d'éviter les répétitions et mis en stand-by cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Feuil1.Range("a" & derlig1 + 1).Copy Feuil2.Range("a" & derlig2 + 3)
    laquelle ne correspond à aucune feuille, c'est tout.

    N'hésites pas, je répondrai si je suis sur le forum

    Bonne journée
    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...)

  8. #8
    Membre confirmé
    Homme Profil pro
    CONSEIL
    Inscrit en
    Avril 2013
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : CONSEIL
    Secteur : Bâtiment

    Informations forums :
    Inscription : Avril 2013
    Messages : 64
    Par défaut
    Bonjour,
    Oui d accord je viens de le comprendre , mais je voudrais modifié ce code, de la manière suivante:
    Donc voilà dans ma feuille "LOTSN°1" je voudrais grâce a mon curseur cliquer quelque soit les cellules se trouvant dans la colonne A et par un simple clic je voudrais me copie la ligne et m’insère la ligne copié juste a la suite de la ligne copier et par la suite je voudrais automatiquement que dans ma feuille "BORDEREAU 1" elle me recherche le numéro de code indiquer dans la cellule dont j'ai effectué une copie de la ligne c'est à dire dans ma feuille "LOTSN°1" et après avoir identifié le code correspondant dans ma feuille "BORDEREAU 1", je voudrais effectué une copie des 3 lignes et inséré les lignes copiés a la suite.

    De plus serait il possible de réinitialisé la liaison de la nouvelle cellule qui se trouve dans la colonne F de ma feuille "BORDEREAU 1" a ma feuille "LOTSN°1"

    Je vous joint mon fichier en prennent exemple au numéro d'article "2.14.03" (feuille "LOTSN°1")C'est a dire a partir de cette article je voudrais effectué une copie et inséré la ligne copié juste a près

    merci

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

Discussions similaires

  1. [XL-2003] Insertion d'une ligne avec recopie des formules ?
    Par OtObOx dans le forum Excel
    Réponses: 6
    Dernier message: 31/03/2012, 22h00
  2. supprimer une ligne sans influencer les formules
    Par macpascal dans le forum Excel
    Réponses: 1
    Dernier message: 11/06/2009, 23h23
  3. [E-03] Insertion d'une ligne en conservant les formules existantes
    Par neosapri dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 05/03/2009, 13h42
  4. Insérer une ligne sans changer la formule ailleurs
    Par dreloman dans le forum Excel
    Réponses: 1
    Dernier message: 13/06/2008, 15h17
  5. Insérer une ligne sans modifier les formules
    Par coup dur dans le forum Excel
    Réponses: 2
    Dernier message: 17/03/2008, 11h02

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