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 60 lignes dans un sheets [XL-2007]


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut ajouter 60 lignes dans un sheets
    bonjour a tous
    comment ajouter 60 lignes dans un sheets sans faire de boucles ?
    quelqu'un a une idée?

    au plaisir
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  2. #2
    Expert éminent Avatar de mercatog
    Homme Profil pro
    Inscrit en
    Juillet 2008
    Messages
    9 435
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations forums :
    Inscription : Juillet 2008
    Messages : 9 435
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    sheets("Feuil1").Rows("4:63").Insert
    insère 60 lignes avant la ligne 4

  3. #3
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut
    bonjour
    merci mercatog

    au plaisir

    oups jai crié victoire trop vite

    voila ma macro qui ajoute 4 page en tout
    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
     
    Sub ajoutpage(nombre As Long)
     
    Application.ScreenUpdating = False
     
    '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    Select Case nombre
     
    Case 1
    Range("B47").Select
    Sheets(nomfeuille).Range("a1") = "2"
    For i = 1 To 69
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Next
    Sheets(nomfeuille).Range("F47:f64").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
    Sheets(nomfeuille).Range("F70:f117").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
     
        Worksheets(nomfeuille).Range("A19:F19").Copy
    ActiveSheet.Paste Destination:=Worksheets(nomfeuille).Range("A69:F69")
    Application.CutCopyMode = False
     
     Rows("69:69").Select
        Selection.RowHeight = 30
     
    Case 2
     Range("B117").Select
     Application.ScreenUpdating = False
     
     Sheets(nomfeuille).Range("a1") = "3"
    For i = 1 To 69
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Next
     
    Sheets(nomfeuille).Range("F117:f133").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
    Sheets(nomfeuille).Range("F139:f186").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
     
    Worksheets(nomfeuille).Range("A19:F19").Copy
    ActiveSheet.Paste Destination:=Worksheets(nomfeuille).Range("A138:F138")
    Application.CutCopyMode = False
     
    Rows("138:138").Select
        Selection.RowHeight = 30
     
     
    Range("B111").Select
     
    Case 3
     Range("B186").Select
     Application.ScreenUpdating = False
     
     Sheets(nomfeuille).Range("a1") = "4"
    For i = 1 To 69
    Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
    Next
    Sheets(nomfeuille).Range("F186:f202").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
    Sheets(nomfeuille).Range("F209:f255").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
     
    Worksheets(nomfeuille).Range("A19:F19").Copy
    ActiveSheet.Paste Destination:=Worksheets(nomfeuille).Range("A208:F208")
    Application.CutCopyMode = False
     
    Rows("208:208").Select
        Selection.RowHeight = 30
     
     
    Range("B186").Select
    End Select
    End Sub
    ya t-il un moyen de faire plus rapide?

    merci pour ton aide
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  4. #4
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    Déjà en retirant les select

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    Sub ajoutpage(nombre As Long)
     
    Application.ScreenUpdating = False
     
    '""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
    With Sheets(nomfeuille)
        Select Case nombre
     
            Case 1
                'Range("B47").Select
                .Range("a1") = "2"
                For i = 1 To 69
                    Range("B47").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
                Next
                .Range("F47:f64").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
                .Range("F70:f117").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
     
                .Range("A19:F19").Copy .Range("A69:F69")
                Application.CutCopyMode = False
     
                .Rows("69").RowHeight = 30
     
            Case 2
                'Range("B117").Select
                'Application.ScreenUpdating = False 'deja au début du code
     
                .Range("a1") = "3"
                For i = 1 To 69
                    Range("B117").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
                Next
     
                .Range("F117:f133").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
                .Range("F139:f186").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
     
                .Range("A19:F19").Copy .Range("A138:F138")
                Application.CutCopyMode = False
     
                .Rows("138:138").RowHeight = 30
     
                'Uniquement si tu veux qu'a la mise a jour de l'affichage, l'utilisateur voit cette cellule de selectionnée
                'Range("B111").Select
            Case 3
                Range("B186").Select
                'Application.ScreenUpdating = False
     
                .Range("a1") = "4"
                For i = 1 To 69
                    Range("B186").EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
                Next
                .Range("F186:f202").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
                .Range("F209:f255").FormulaR1C1 = "=IF(RC[-2]*RC[-1]=0,"""",RC[-2]*RC[-1])"
     
                .Range("A19:F19").Copy .Range("A208:F208")
                Application.CutCopyMode = False
     
                .Rows("208:208").RowHeight = 30
     
                'Range("B186").Select
        End Select
    End With
    End Sub
    Apres je n'ai pas le temps, mais il est surement possible de faire un truc pour ce code qui se répète 3 fois et qui est mis a part les plage de cellule similaire.
    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

  5. #5
    Inactif  

    Homme Profil pro
    cuisiniste
    Inscrit en
    Avril 2009
    Messages
    15 374
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

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

    Informations forums :
    Inscription : Avril 2009
    Messages : 15 374
    Billets dans le blog
    8
    Par défaut re
    bonjour qwazerty


    oui j'ai enlevé les selects

    et j'ai remplacer la boucle des 69 inserts par la proposition de mercatog

    et meme en respectant les numero de ligne je ne me trouve pas avec les meme pages
    c'est ennuyant


    merci pour le coup de main
    mes fichiers dans les contributions:
    mail avec CDO en vba et mail avec CDO en vbs dans un HTA
    survol des bouton dans userform
    prendre un cliché d'un range

    si ton problème est résolu n'oublie pas de pointer : : ça peut servir aux autres
    et n'oublie pas de voter

  6. #6
    Expert confirmé
    Avatar de Qwazerty
    Homme Profil pro
    La très haute tension :D
    Inscrit en
    Avril 2002
    Messages
    4 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 128
    Par défaut
    Salut
    et meme en respectant les numéros de ligne je ne me trouve pas avec les mêmes pages
    c'est ennuyant
    Je ne saisi pas ce que tu veux dire.


    Pour ce qui est des Inserts, comment as tu adapté le code de Mercatog?
    Pour avoir une mise en page de ton tableau il te faut commencer la sélection à partir de la fin de ton tableau et quand bien même tu ferais ça, il te faudra refaire le quadrillage de ton tableau.

    [Edit]
    En survolant ton code de nouveau, je pense comprendre que tu souhaites afficher plusieurs tableau sur une même feuille qui par la suite sera imprimé sur plusieurs page, si c'est ça, il te faut utiliser les saut de page à la fin de chaque tableau afin d'être sur de repartie sur une nouvelle page pour le tableau suivant.
    [/Edit]

    ++
    Qwaz

    MagicQwaz := Harry Potter la baguette en moins
    Le monde dans lequel on vit
    Ma page perso DVP
    Dernier et Seul Tutoriel : VBA & Internet Explorer
    Dernière contribution : Lien Tableau Structuré et UserForm
    L'utilisation de l’éditeur de message

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

Discussions similaires

  1. Ajout de ligne dans form "feuille de données"
    Par jarod_bx dans le forum Access
    Réponses: 5
    Dernier message: 12/01/2006, 13h31
  2. Ajouter une ligne dans un DBGrid
    Par jbaers dans le forum Bases de données
    Réponses: 3
    Dernier message: 28/11/2005, 09h18
  3. [.NET] [C#] - Empecher l'ajout de ligne dans datagrid
    Par fab2050 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 02/11/2005, 19h12
  4. Réponses: 14
    Dernier message: 22/09/2005, 16h49
  5. Ajouter une ligne dans une liste via un POPUP
    Par seblo_scoqi dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 25/01/2005, 16h20

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