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 :

Passer quelques lignes en dessous pour la même macro


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Par défaut Passer quelques lignes en dessous pour la même macro
    Bonjour,

    J'ai crée une macro avec excel dans laquelle je copie diverses informations de la feuille 1 que je vais coller sur la feuille 2 (sur cette feuille 2 les informations se trouves placées cote à cote par exemple de range "A1:E4")

    Jusque la pas de souci, mais ce que je voudrais c'est que lorsque je réutilise à nouveau cette macro les nouvelles informations collées sur la feuille 2 le soient admettons 2 lignes en dessous des premieres infos collées et ainsi desuite.

    Par exemple si les 1eres infos sont collées de "A1:E4" les secondes soient collées de "A6:E9" et ainsi desuite.

    Voila ce que j'ai pour l'instant en visual basic:

    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
    Sub Bouton1_QuandClic()
    '
    ' Bouton1_QuandClic Macro
    ' Macro enregistrée le 03/12/2008 par Cyberteck
    '
     
    '
    Range("C17:C19").Select
    Selection.Copy
    Sheets("Feuil2").Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    Range("G17:G19").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("B1").Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    Range("I21:I23").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("C1:C3").Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    Range("E25:E27").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("D1:D3").Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    Range("A21:A23").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("E1").Select
    ActiveSheet.Paste
    Sheets("Feuil1").Select
    Range("C21:G21").Select
    Application.CutCopyMode = False
    Selection.Copy
    Sheets("Feuil2").Select
    Range("A4").Select
    ActiveSheet.Paste
    Range("A5").Select
    Sheets("Feuil1").Select
    Range("A17").Select
    Application.CutCopyMode = False
    ActiveCell.FormulaR1C1 = ""
    Range("B17").Select
    End Sub
    Merci par avance pour votre aide
    Trenchtown

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Bonjour


    Je te laisse tester

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub atester()
    Dim fd As Worksheet ' ligne début du code à  copier
    Set fd = Sheets("Feuil2")
        With Sheets("Feuil1")
            .Range("C17:C19").Copy fd.Range("A65536").End(xlUp)(1)
            .Range("G17:G19").Copy fd.Range("B65536").End(xlUp)(1)
            .Range("I21:I23").Copy fd.Range("C1:C3")
            .Range("E25:E27").Copy fd.Range("D65536").End(xlUp)(1)
            .Range("A21:A23").Copy fd.Range("E65536").End(xlUp)(1)
            .Range("C21:G21").Copy fd.Range("A65536").End(xlUp)(2)
        End With '--------> ligne fin du code à copier
    End Sub


    J.L

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Par défaut
    mci de ta reponse mais je le place ou stp. c'est une nouvelle macro?

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 48
    Par défaut
    Re


    C'est théoriquement la même macro que la tienne
    (mais en évitant les Select issus de l'enregistreur de macros)

    Colle dans la macro à la place de ta précédente macro
    (de la ligne début à la ligne à ligne fin)
    C.a.d

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub Bouton1_QuandClic()
    ' Bouton1_QuandClic Macro
    ' Macro enregistrée le 03/12/2008 par Cyberteck
    '------> ici le nouveau code à tester
    End Sub
    et exécutes la.

    J.L

  5. #5
    Candidat au Club
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 3
    Par défaut
    Ok mci.

    En faisant quelques modifs, effectivement j'arrive à mon ancienne macro mais ce que je voudrais en + ce serai que quand je réexécute cette macro les copiages sur la feuilles 2 aillent quelques lignes plus bas que les elements copiés precedemment pour avoir tous les elements copiés qui s'alignent à la suite.

    En fait j'obtiens un tableau de ce type avec la macro:

    Joueur1 Joueur2 Joueur3 Joueur4 Joueur5
    x x x x x
    x x x x x

    Et moi je voudrais que si je réappui sur le bouton de la macro un autre tableau vienne ce coller 2 lignes en dessous comme ci dessous:

    Joueur1 Joueur2 Joueur3 Joueur4 Joueur5
    x x x x x
    x x x x x


    Joueur1 Joueur2 Joueur3 Joueur4 Joueur5
    x x x x x
    x x x x x

    Et ainsi desuite pour avoir plusieurs alignements de tableaux.

    Voila
    Voici ta macro un peu modifier pour obtenir un tableau

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Sub atester()
    Dim fd As Worksheet
    Set fd = Sheets("Feuil2")
        With Sheets("Feuil1")
            .Range("C17:C19").Copy fd.Range("A65536").End(xlUp)(1)
            .Range("G17:G19").Copy fd.Range("B65536").End(xlUp)(1)
            .Range("I21:I23").Copy fd.Range("C65536").End(xlUp)(1)
            .Range("E25:E27").Copy fd.Range("D65536").End(xlUp)(1)
            .Range("A21:A23").Copy fd.Range("E65536").End(xlUp)(1)
            .Range("C21:G21").Copy fd.Range("A65536").End(xlUp)(4)
        End With
    End Sub

Discussions similaires

  1. [XL-2003] Mystère de précision de résultat pour la même macro sur deux ordis (xls2003)
    Par agilles dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 16/12/2011, 16h07
  2. Réponses: 2
    Dernier message: 21/08/2008, 12h46
  3. Bibliographie : couper titres pour les faire passer à la ligne en note de bas de page
    Par oesibius dans le forum Bibliographies - Index - Glossaires
    Réponses: 1
    Dernier message: 24/08/2007, 11h50
  4. Besoin d'aide pour traduire ces quelques lignes
    Par sircus dans le forum Langage
    Réponses: 3
    Dernier message: 09/08/2006, 15h11
  5. [VB6]passer un textbox en dessous d'une ligne
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 17/05/2006, 15h45

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