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 :

Macros ou code VBA [XL-2013]


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
    technicien en programation
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : technicien en programation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut Macros ou code VBA
    Bonsoir,
    J’ai un problème que je vais vous exposez pour une éventuel solution.
    Le code VBA que voici copie les donnes plus les formules de calcule utilisé de la première page et les colle dans la deuxième page dans la même feuille :
    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 test()
    '
    ' test Macro
    '
    ' Touche de raccourci du clavier: Ctrl+p
    '
        Range("A1:J17").Select
        Selection.Copy
        ActiveWindow.SmallScroll Down:=9
        Range("A19").Select
        ActiveSheet.Paste
        ActiveWindow.SmallScroll Down:=5
        Range("A26").Select
    End Sub
    Maintenant ce que je veux faire ce que à chaque exécution du macros que ça crée une nouvelle page au lieu de la deuxièmes à chaque fois, je m’y connais pas trop en VBA et je demande votre aide par ce que j’ai effectué des recherche et j’ai compris que je dois apprendre tous le langage VBA tant dis que je suis développeur en mode avancé c’est à dire (PHP, HTML, JS,APK, CSS, MySQL) dont je nait pas totalement terminé pour ne pas me dispersé je demande à vous expert en Excel pour m’aider à résoudre ce problème avec quelque code sans apprendre tous le langage.
    Merci d’avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    Essayez ce code :

    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
     
     
    Sub CopierUneAireDansUneNouvelleFeuille()
     
    Dim OngletEnCours As Worksheet
    Dim NouvelOnglet As Worksheet
     
        Set OngletEnCours = ActiveSheet
        Set NouvelOnglet = ActiveWorkbook.Worksheets.Add(after:=Sheets(Sheets.Count))
     
        OngletEnCours.Range("A1:J17").Copy Destination:=NouvelOnglet.Range("A1")
     
        Set OngletEnCours = Nothing
        Set NouvelOnglet = Nothing
     
    End Sub
    Cordialement.

  3. #3
    Membre actif
    Homme Profil pro
    technicien en programation
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : technicien en programation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut copie sur une nouvelle page
    Eric merci,
    Le code que vous m’avez envoyé je les testé et sa copie sur une nouvelle feuille mai mon objectif est que sa copie sur la même feuille mai sur une nouvel page.
    Merci

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par pipipicontrole Voir le message
    Visiblement Menhir vous a répondu.

    Cordialement.

  5. #5
    Membre actif
    Homme Profil pro
    technicien en programation
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : technicien en programation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut copie sur une nouvelle page
    Merci a Menhir,
    Apres le test de votre code sa active plus 18000 page mai aucun donné n’est copier ni les formule par ce que l’objectif c’est de récupéré c’est traitement et donnée sur une nouvelle page enfin de remplacé les donnée copier manuelement et directement les champs calculé affiche le résultat et la page en question est considéré comme une nouvelle enregistrement seulement il y a une différence de donnée entre la page actuel et la page copier.
    Merci

  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 pipipicontrole Voir le message
    Apres le test de votre code sa active plus 18000 page mai aucun donné n’est copier ni les formule
    Je suis parti du principe que tu devais avoir un fichier propre, ce qui, visiblement, n'est pas le cas.
    Je pense que tu as du copier des trucs dans une colonne entière ou quelque chose comme ça. Il y a sans doute des parasites en dehors de la zone utilisée.

    Ne sachant pas quelle forme ont tes données et ce que contient la zone "A1:J17", j'étais parti sur l'utilisation d'un UsedRange qui semblait le plus sûr.
    Mais s'il y a des parasites à l'extérieur de la zone utile, ce n'est pas possible de procéder ainsi.

    Il faudrait que tu fasses une copie d'écran de la zone "A1:J17" pour voir sur quoi il est possible de s'appuyer pour repérer les fins de zone.

  7. #7
    Membre actif
    Homme Profil pro
    technicien en programation
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : technicien en programation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut
    Citation Envoyé par Eric KERGRESSE Voir le message
    Visiblement Menhir vous a répondu.

    Cordialement.
    mai lui son code ne repond pas a mes besoin vue que sa active plus de 18000 page mai aucun donnée n'est copier

  8. #8
    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
    D'abord, un petit nettoyage de ton code (l'enregistreur automatique, c'est bien, mais il faut s'inspirer du code récupérer et non l'utiliser comme tel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
    ' Touche de raccourci du clavier: Ctrl+p
        Range("A1:J17").Copy Range("A19")
    End Sub
    Pour ce que tu souhaites faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
        ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address
        ActiveSheet.HPageBreaks.Add Before:=Cells((ActiveSheet.HPageBreaks.Count+1)*19,1)
        Range("A1:J17").Copy Cells(ActiveSheet.HPageBreaks.Count*19,1)
        ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address
    End Sub

  9. #9
    Membre actif
    Homme Profil pro
    technicien en programation
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : technicien en programation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut
    Citation Envoyé par Menhir Voir le message
    D'abord, un petit nettoyage de ton code (l'enregistreur automatique, c'est bien, mais il faut s'inspirer du code récupérer et non l'utiliser comme tel) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Sub test()
    ' Touche de raccourci du clavier: Ctrl+p
        Range("A1:J17").Copy Range("A19")
    End Sub
    Pour ce que tu souhaites faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Sub test()
        ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address
        ActiveSheet.HPageBreaks.Add Before:=Cells((ActiveSheet.HPageBreaks.Count+1)*19,1)
        Range("A1:J17").Copy Cells(ActiveSheet.HPageBreaks.Count*19,1)
        ActiveSheet.PageSetup.PrintArea = ActiveSheet.UsedRange.Address
    End Sub
    Apres le test de votre code sa active plus 18000 page mai aucun donné n’est copier ni les formule par ce que l’objectif c’est récupéré c’est traitement et donnée sur une nouvelle page enfin de remplacé les donnée copier et directement les champs calculé affiche le résultat et la page en question est considéré comme nouvelle enregistrement seulement il y a une différence de donnée entre la page actuel et la page calculé.
    Merci

  10. #10
    Membre Expert
    Inscrit en
    Octobre 2010
    Messages
    1 401
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 401
    Par défaut
    Citation Envoyé par pipipicontrole Voir le message
    Apres le test de votre code sa active plus 18000 page mai aucun donné n’est copier ni les formule
    Est-ce que tu mets le code de Menhir dans un module standard ?

    Pour creer un module standard, tu vas dans Menu Insertion / Module

  11. #11
    Membre actif
    Homme Profil pro
    technicien en programation
    Inscrit en
    Mars 2014
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Mali

    Informations professionnelles :
    Activité : technicien en programation
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 50
    Par défaut
    Citation Envoyé par Docmarti Voir le message
    Est-ce que tu mets le code de Menhir dans un module standard ?

    Pour creer un module standard, tu vas dans Menu Insertion / Module
    pour faire quel action si non tous le code qu'il mon envoiyé je les est tous testé sans exception mai aucun ne repon a mes besoin meme aprés les corrections.
    Merci vraiment doc si tu pouvait voire mon avan dernier message et m'aidé je sui en periode de test et c'est la DGA qui a demandé cette action je sai c'est pour me testé si je deplois une de mes applications dans mon pays avoire du boulot c'est trés difficile.
    je remercie tous le monde meme si il y a des qui ce son fachez je demande pardont aussi.

  12. #12
    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 pipipicontrole Voir le message
    pour faire quel action si non tous le code qu'il mon envoiyé je les est tous testé sans exception mai aucun ne repon a mes besoin meme aprés les corrections.
    Et ça ne te viendrait pas à l'idée de le dire ? Et de dire ce qui se produit quand tu les exécutes et ce qui ne convient pas ?

  13. #13
    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
    La zone A:1:J17 est supposée contenir 17 lignes. Dans ta copie d'écran, je n'en vois que 11.

    Je vais essayer de faire avec ça mais pas sûr que ça marche.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Sub test()
        Dim Fin As Long
        Fin = (Int(Range("B" & Rows.Count).End(xlUp).Row / 18.0) + 1) * 18
        Range("A1:J17").Copy Range("A" & (Fin + 1))
    End Sub
    Citation Envoyé par Eric KERGRESSE Voir le message
    Ce que je comprends, c'est qu'on copie A1:J17 en fin de tableau et on ajoute un saut de page.
    Est-ce que j'ai bien pigé ?
    N'ayant aucune référence précise, j'utilisais les saut de page pour pouvoir compter les pages.
    Mais pour pouvoir compter les sauts de page, il faut qu'ils soit dans la zone d'impression. D'où la première et dernière lignes de code.

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

Discussions similaires

  1. [Toutes versions] Macro ou code VBA pour effacer des caracteres et aller a la ligne dans un meme cellule
    Par ghisunit dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 07/04/2012, 15h29
  2. [XL-2007] Macro ou code VBA d'un formule Gauche et Recherche
    Par ghisunit dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 15/03/2012, 22h36
  3. [AC-2007] convertir mes macros en code VBA.
    Par solaar dans le forum IHM
    Réponses: 5
    Dernier message: 06/08/2009, 18h50
  4. convertir une macro en code vba
    Par misig dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 12/12/2007, 23h54
  5. Prob pour exporter une macro en code VBA
    Par electrosat03 dans le forum Access
    Réponses: 6
    Dernier message: 04/02/2006, 19h15

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