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 :

Erreur sélection et Mise en page


Sujet :

Macros et VBA Excel

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Par défaut
    Bonjour à tous.

    J'ai quelques petites questions à vous poser

    PREMIÈRE QUESTION:
    J'ai cherché sur le forum et je suis parvenu à trouver un bout de code permettant de réaliser la saisie et la copie d'un classeur vers un autre classeur... J'ai malheureusement une erreur et je ne comprends pas d'où elle vient!!! Le code en lui même fonctionne bien mais la copie ne s’effectue pas dans les cases désirées.
    Par exemple, je souhaite copier le rang A14:A19 de mon premier classeur dans le rang B13:B18 de mon second classeur. Le code fonctionne, c'est à dire que la copie s'effectue bien, mais pas dans les bonnes cases. Résultat la copie de mes cellules se fait dans le rang B22:B37... J'ai tenté de changer un peu les paramètre mais en vain...


    DEUXIÈME QUESTION:
    Je souhaite dans un second temps ne plus indiquer un rang comme je le fais actuellement (A14:A19), mais je voudrais dire "tu copies toutes les cases non vides de la colonne A". Car pour le moment j'ai 16 lignes mais il se peut qu'à court terme... il y en ai plus...


    TROISIÈME QUESTION:
    J'ai fait une "sorte de mise en page". C'est juste un titre, une date et une heure. Je souhaiterais lorsque le nombre de lignes occupent une deuxième page, que ma mise page soit recopié automatiquement. Ainsi j'aurais toujours la même présentation de document. Pour le moment c'est une option, ce n'est pas le plus important, mais j'aimerais bien que çà marche

    Je vous donne mon code, enfin le code que j'ai adapté

    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
    Sub Reporte_Incidencias()
     
    ' Déclaration des variables d'entrée
    Dim NomFichierEntree
    Dim Sortie As Workbook
    Dim Entree As Workbook
    Dim FeuilleOrigine As Worksheet
    Dim FeuilleDestination As Worksheet
     
        Set Sortie = ThisWorkbook
        ' Choisir fichier
        NomFichierEntree = Application.GetOpenFilename("Fichier Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm")
        ' On verifie que l'on a selectionné un nom de classeur
     
        If NomFichierEntree <> False Then
            ' On ouvre le classeur
            Set Entree = Workbooks.Open(NomFichierEntree)
     
            'Référence feuille origine des données à copier
            Set FeuilleOrigine = Entree.Sheets("Kilometraje")
     
            'Référence la feuille de destination des cellules copiées
            Set FeuilleDestination = Sortie.Sheets("Hoja general")
     
            ' On copie les cellules de la feuille désirée vers la feuille de sortie
            FeuilleDestination.Range("A65536").End(xlUp)(2).Range("B13:B28").Value = FeuilleOrigine.Range("A14:A29").Value
     
            ' On copie les cellules de la feuille désirée vers la feuille de sortie
            FeuilleDestination.Range("A65536").End(xlUp)(2).Range("C13:B28").Value = FeuilleOrigine.Range("F14:F29").Value
     
            ' On copie les cellules de la feuille désirée vers la feuille de sortie
            FeuilleDestination.Range("A65536").End(xlUp)(2).Range("D13:D28").Value = FeuilleOrigine.Range("G14:G29").Value
     
            ' On copie les cellules de la feuille désirée vers la feuille de sortie
            FeuilleDestination.Range("A65536").End(xlUp)(2).Range("E13:E28").Value = FeuilleOrigine.Range("I14:I29").Value
     
            ' On ferme le classeur
            Entree.Close
        End If
     
        ' Choisir fichier
        NomFichierEntree = Application.GetOpenFilename("Fichier Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm")
        ' On verifie que l'on a selectionné un nom de classeur
     
        If NomFichierEntree <> False Then
            ' On ouvre le classeur
            Set Entree = Workbooks.Open(NomFichierEntree)
     
            'Référence feuille origine des données à copier
            Set FeuilleOrigine = Entree.Sheets("Análisis de recorridos")
     
            'Référence la feuille de destination des cellules copiées
            Set FeuilleDestination = Sortie.Sheets("Hoja general")
     
            ' On copie les cellules de la feuille désirée vers la feuille de sortie
            FeuilleDestination.Range("A65536").End(xlUp)(2).Range("B13:B28").Value = FeuilleOrigine.Range("F16:F31").Value
     
             ' On copie les cellules de la feuille désirée vers la feuille de sortie
            FeuilleDestination.Range("A65536").End(xlUp)(2).Range("F13:F28").Value = FeuilleOrigine.Range("P16:P31").Value
     
            ' On ferme le classeur
            Entree.Close
        End If
     
    End Sub
    Merci beaucoup pour votre aide!

    Je site tout de même la référence du code

    http://www.developpez.net/forums/d10...lasseur-ferme/

    Merci à toi tedo01

  2. #2
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Par défaut
    J'ai trouvé pour la QUESTION 3

    http://www.developpez.net/forums/d10...ntete-tableau/


    Par contre pour les deux première, toujours pas...

  3. #3
    Membre confirmé
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Février 2011
    Messages
    30
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Formateur en informatique

    Informations forums :
    Inscription : Février 2011
    Messages : 30
    Par défaut
    Bonsoir,

    pour la QUESTION 1, a priori, tu peux supprimer les morceaux de code Range("A65536").End(xlUp)(2) et cela devrait marcher.

    Pour la QUESTION 3, tu veux dire que tu es susceptible d'avoir des lignes vides dans ta sélection et tu ne souhaites pas les copier dans la feuille de destination ?

  4. #4
    Membre averti
    Inscrit en
    Juillet 2010
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 19
    Par défaut
    Pour la question 1, j'ai supprimé ce que tu m'as dit et y'avait pas de changements... j'ai redémarré mon pc car j'ai vu çà sur certains autres forums et miracle çà marche

    Pour la question 2, je n'ai toujours pas trouvé de solution... malheureusement, c'est mon problème le plus important.

    Pour la question 3, non je voulais en faite créer une espèce d'entête... J'y suis parvenu tout simplement dans la mise en page, puis sur feuille et lignes à répéter... c'est exactement ce que je cherchais...

    Malheureusement, j'ai d'autres petits soucis...
    Question 4
    En faite, sur la deuxième feuille de mon document excel, je récupère des données provenant d'un autres fichiers. Pour cela je copie-colle (voir question1)
    Le problème est que je souhaite créer un graphique secteur d'une colonne, mais je ne parviens pas à visualiser un graphique normale... j'ai alors vérifié le type de données de mes colonnes mais çà n'a rien résolu...
    Si je crée un tableau moi même, sans utiliser la fonction copié-collé, celà fonctionne parfaitement...

    Avez-vous une idée pour question 1 et 4, merci

    Désolé çà fait beaucoup de questions mais pouvez-vous me dire d'où vient l'erreur 438 dans cet extrait de code en rouge...


    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
      ' Choisir fichier
        NomFichierEntree = Application.GetOpenFilename("Fichier Excel (*.xls;*.xlsx;*.xlsm),*.xls;*.xlsx;*.xlsm")
        ' On verifie que l'on a selectionné un nom de classeur
    
        If NomFichierEntree <> False Then
        ' On ouvre le classeur
        Set Entree = Workbooks.Open(NomFichierEntree)
    
        'Référence feuille origine des données à copier
        Set FeuilleOrigine = Entree.Sheets("Recorridos")
    
        'Référence la feuille de destination des cellules copiées
        Set FeuilleDestination = Sortie.Sheets("Hoja general")
        ' On copie les cellules de la feuille désirée vers la feuille de sortie
        FeuilleDestination.Range("B13:B28").Value = FeuilleOrigine.Range("A16:A31").Value
    
        For i = 13 To 16
        FeuilleDestination("Hoja general").Columns(G).Replace "Km/H", ""
        Next i
    
        ' On ferme le classeur
        Entree.Close
        
        End If
    Merci

Discussions similaires

  1. [WD-2003] Erreur lors de la mise en page
    Par Runinck dans le forum Word
    Réponses: 3
    Dernier message: 06/12/2010, 20h08
  2. [ZF 1.10] Mise en page des erreurs dans un formulaire
    Par mysth dans le forum Zend_Form
    Réponses: 0
    Dernier message: 08/06/2010, 17h41
  3. erreur mise en page excel
    Par moimemessssssssss dans le forum VBA Access
    Réponses: 2
    Dernier message: 07/04/2010, 21h56
  4. Réponses: 7
    Dernier message: 21/06/2007, 11h27
  5. Erreur d'exécution '1004' lors d'une mise en page
    Par alex.a dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 01/06/2007, 09h00

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