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

VBA Access Discussion :

Problème de copie ligne dans tableau excel [AC-2007]


Sujet :

VBA Access

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut Problème de copie ligne dans tableau excel
    Bonjour,


    J'ai un petit soucis sur un code pour fichier excel.
    L'exportation se passe bien mais je voudrais copier mes entêtes sur chaque nouvelle page.
    Connaissant le nombre de lignes avant chaque nouvelle page. J'ai mis ce code, mais il ne me copie pas la ligne 2. Sachant que les codes de fermeture de page et fichier se font après.
    L'erreur de déboggage se trouve sur la ligne selection....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    xlSheet1.Rows("32:32").Select
                        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                        xlSheet1.Rows("2:2").Select
                        Selection.Copy
                        xlSheet1.Rows("52:52").Select
                        xlSheet1.Paste
    Merci de votre aide.

    Marcopololo

  2. #2
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    Bon cela fonctionne un peu mieux, mais j'ai une erreur aléatoire.
    Une fois, la ligne est bien copiée et la seconde fois j'ai une erreur indiquant qu'une variable de type with (erreur 91)n'est pas définie et le déboggage s'arrête sur la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    avec les valeurs de xldown=-4121 et leftorabove=0

    Merci de votre aide

    Marcopololo

  3. #3
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    Dans le même temps je veux recopier toutes les 32 lignes mon entête.

    voilà le bout de code que j'ai fait, mais il ne fonctionne pas.

    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
    'Recopie de la ligne des entêtes sur chaque page si le nombre d'enregistrement est sup à 32 et ses multiples
            If nbrerec >= 32 Then
     
              For R = 1 To Int(nbrerec / 32)
              MsgBox R, vbOKOnly
     
              S = (R * 32) - 1
              MsgBox S, vbOKOnly
                        xlSheet1.Rows("1:1").Offset(S, S).Select
                        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                        xlSheet1.Rows("2:2").Select
                        Selection.Copy
                        xlSheet1.Rows("32:32").Offset(S, S).Select
                        xlSheet1.Paste
              Next R
            Else
            End If

  4. #4
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    Voila, j'ai corrigé mes erreurs et mon code fonctionne à un problème près.

    Si mon fichier n'existe pas, pas de soucis ma procédure fonctionne sans soucis, sinon elle plante à la ligne selection.copy

    Si quelqu'un avait une idée.
    Pourtant ma feuille est bien activée, et j'ai essayé en mettant l'activation avant selection.copy, c'est pareil.

    Merci d'avance


    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
    'Recopie de la ligne des entêtes sur chaque page si le nombre d'enregistrement est sup à 32 et ses multiples
            If nbrerec >= 32 Then
     
              For R = 1 To Int(nbrerec / 32)
              MsgBox R, vbOKOnly
     
              S = (R * 32)
              MsgBox S, vbOKOnly
                        'xlSheet1.Rows ("1:1")
                        'xlSheet1.Rows("1:1").Offset(S, S).Select
                        'Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                        xlSheet1.Rows("2:2").Select
                        Selection.Copy
                        xlSheet1.Activate
                        xlSheet1.Rows("" & S & ":" & S).Select '.Offset(S, S).Select
                        Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
                        xlSheet1.Paste
              Next R
            Else
            End If

  5. #5
    Expert confirmé
    Avatar de LedZeppII
    Homme Profil pro
    Maintenance données produits
    Inscrit en
    Décembre 2005
    Messages
    4 485
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Maintenance données produits
    Secteur : Distribution

    Informations forums :
    Inscription : Décembre 2005
    Messages : 4 485
    Par défaut
    Bonjour,

    Je ne sais pas si je te l'avais déjà dit ou pas.
    Lorsqu'on pilote Excel en dehors d'Excel (Automation), il faut éviter d'utiliser des expressions dans lesquelles on utilise des membres du modèle objet Excel, sans que l'expression commence par une de tes variables.

    Voici une méthode pour éviter d'utiliser Selection :
    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
    'Recopie de la ligne des entêtes sur chaque page si le nombre d'enregistrement est sup à 32 et ses multiples
            If nbrerec >= 32 Then
     
                For R = 1 To Int(nbrerec / 32)
                    MsgBox R, vbOKOnly
     
                    S = (R * 32)
                    MsgBox S, vbOKOnly
                    ' Copier Ligne 2
                    xlSheet1.Rows(2).Copy 
                    ' L'insérer en ligne S
                    xlSheet1.Rows(S).Insert xlShiftDown
                    ' Annuler le mode Copie
                    xlSheet1.Application.CutCopyMode = 0
                Next R
            Else
            End If
    A+

  6. #6
    Membre éclairé Avatar de Marcopololo
    Profil pro
    Inscrit en
    Juillet 2008
    Messages
    311
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2008
    Messages : 311
    Par défaut
    Merci Ledzepp2.
    Je ne crois pas que tu me l'avais dis. Si je comprends bien l'utilisation des fonctions de la bibliothèque excel donne des soucis d'instyabilité ?

    En tout cas cela marche super.

    Par contre un petit soucis qu'il faut que je traite.
    J'ai un message d'information qui apparait et qui m'indique que le format n'est pas le même que le standard (j'imagine xlsx). Y at-il une solution pour empêcher ce message. J'ai lu sur les problèmes de mode compatibilité mais cela est un peu confus.
    Images attachées Images attachées  

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 06/02/2012, 11h18
  2. recherche lignes dans tableau excel
    Par BODIGUEL dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/05/2006, 19h08
  3. wysiwyg inserer ligne dans tableau
    Par flatron dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 07/02/2006, 14h55
  4. [VBA] problème choix de cellule dans feuille excel
    Par beegees dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 01/02/2006, 10h48
  5. Problème saut de ligne dans un tableau
    Par talggir dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 23/11/2005, 15h10

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