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 :

copier ligne avec formule et creer feuille/ligne


Sujet :

Macros et VBA Excel

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut copier ligne avec formule et creer feuille/ligne
    Bonjour,

    je suis sous excel,

    J'ai la premiere feuil qui contient simplement une ligne de 10 colonnes, certaines cellules comporte des formules de calcul ou de recherche et je rempli de reste des cellules avec mes données.

    Je souhaiterai pouvoir à l'aide d'un bouton ou autre?, dupliquer en dessous de la derniere ligne en cours la premire ligne avec les fomules et si possible sans les données.

    deuxième probleme,

    pour chaque ligne saisie, je crée une nouvelle feuille dans laquelle des données de la ligne sont copiées. 5 ligne ==> 5 feuilles

    10 lignes ==> 10 feuilles etc...

    au pire je peux copier les lignes mais il me faudrait un bouton qui compte ne nombre de ligne renseignée et qui me cree autant de feuille en sachant que la 1ere feuille est creee que les autres feuilles sont une copie de la premiere feuille. pour info la feuille principale se nomme 'calcul' etcontenant la feuille a copier se nomme 'feuil3'. Chaque feuille prend ses données sur la ligne correspondante.

    je pense que ceci n'est pas très dur pour vous mais pour moi ca l'est et c'est très urgent!!

    merci d'avance.

  2. #2
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Pour utiliser la macro suivante, il faut que:
    1. La feuille d'entrée (source) commence à la ligne 1, colonne A,
    2. la ligne d'entrée ne contient rien qui ne fasse pas partie de la copie finale.
    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
    36
    37
    38
    39
    40
    41
    42
    43
    44
    Sub CopierLigneEntreeAvecCreationDeFeuille()
        Dim wksSource As Worksheet
        Dim wkb As Workbook
        Dim rng As Range
        Dim c As Range
     
        ' prendre en note la feuille source car elle ne sera plus la feuille active
        '   apres la création d'une nouvelle feuille
        Set wksSource = ActiveSheet
     
        With wksSource
            ' Creer une nouvelle feuille dans le classeur
            On Error Resume Next
            Set wkb = .Parent
            wkb.Worksheets.Add After:=wkb.Worksheets(wkb.Worksheets.Count)
     
            ' S,il y a une erreur lors de la création de la feuille, terminer le processus
            If Err.Number <> 0 Then
                Err.Clear
                Exit Sub
            End If
            On Error GoTo 0
     
            ' Copier la première ligne de la feuille source
            .Cells(1, 1).Resize(1, .UsedRange.Columns.Count).Copy
     
            ' prendre en note la plage/ligne de destination
            Set rng = .Cells(.UsedRange.Rows.Count + 1, 1).Resize(1, .UsedRange.Columns.Count)
            ' coller sur la^première ligne libre de la feuille source...
            rng.Cells(1).PasteSpecial
            ' ... et sur la première ligne de la nouvelle feuille
            ActiveSheet.Cells(1).PasteSpecial
        End With
     
        ' Effacer le contenu de toutes les cellule ne contenant pas de formule
        For Each c In rng
            If Not Left(c.Formula, 1) = "=" Then
                c.Clear ' Effacer le contenu de celles qui ne commencent pas par "="
            End If
        Next c
     
        ' réactiver la feuille source
        wksSource.Activate
    End Sub

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2008
    Messages : 6
    Points : 5
    Points
    5
    Par défaut
    merci j'avance,

    je te joins mon fichier si tu ve bien regarder ,

    ma feuil principal est la calcul, je voudrais pouvoir ajouter autant de ligne que j'ai besoin suivant le projet soit 1 soit n .

    et pour chaque ligne que je rajoute que la feuil en feuil 3 se copie sur une nouvelle feuille en sachant que je prend le 5 premiere cellule de la feuil sur la ligne correspondante en feuil calcul

    mercid'avancehexagrain_29_01_08.xls

  4. #4
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Je suis en train de regarder ce qui peut être fait avec ton fichier et j'ai une question pour toi.

    Quand tu crées une nouvelle feuille, comment veut-tu la nommer? J'assume que tu veux la nommer d'après le numéro de l'îlot, mais je pourrais me tromper...

    Quelque chose comme 'Îlot-xx' ?

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 453
    Points : 520
    Points
    520
    Par défaut
    Voici ton fichier, modifié de façon à incorporer les fonctionalités souhaitées.

    J'ai retouché la feuille "Calcul" en déplaçant les listes de validation et en les cachant en-haut de la feuille.

    J'ai aussi standardisé les bordures externes du tableau de façon à exprimer une certaine hiérarchie et pour faciliter la reproduction des lignes d'entrée de façon cohérante.

    J'ai fait en sorte que la feuille "Calcul" soit toujours protégée (sauf si manipulation par l'utilisateur avec le menu "Protection/Protéger la feuille...").

    J'ai renommé la feuille "Feuil3" au nom de "Modèle" par souci de clarté dans le design.

    J'ai incorporé un bouton de validation dans la feuille "Calcul". Il se positionne automatiquement à l'extrême droite de la ligne d'entrée en cours. Un clic sur celui-ci créé une feuille selon le model de la feuille "Modèle", y copie les données voulues dans les cases appropriées et crée une nouvelle ligne d'entrée dans la feuille "Calcul".

    J'ai créé une feuille "Listes" servant à contenir toutes les listes dont l'application sous-jaçante aurait besoin. Chaque liste est dotée d'un titre correspondant au Nom attribué dans le classeur pour la plage de la liste. Ce nom est invisible pour l'utilisateur.

    Plusieurs améliorations seraient nécessaires à cette application pour la rendre réellement utilisable en industrie, mais comme je ne suis pas payé pour le travail que j'ai accompli pour toi, j'espère que ça te suffira comme exemple de programmation.

    Bonne chance!
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. PHPEXCEL impossible de lire le contenu d'une ligne avec formule
    Par Akim13 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 08/05/2013, 15h54
  2. [XL-2007] Macro - Copie ligne avec formule et récupération de nom de feuille
    Par klemanet dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 08/06/2012, 17h04
  3. [XL-2010] Insérer ligne avec formule gardé
    Par nathalie69 dans le forum Excel
    Réponses: 4
    Dernier message: 17/12/2011, 14h14
  4. copier ligne avec formule et creer une feuille par ligne
    Par yanchs dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 27/01/2008, 18h04
  5. [Excel VB] Insertion ligne avec formules
    Par ptitsoleil87 dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 22/12/2005, 16h21

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