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 dépassement du nombre de colonnes


Sujet :

Macros et VBA Excel

  1. #1
    Invité
    Invité(e)
    Par défaut Erreur dépassement du nombre de colonnes
    Bonjour,

    Je voudrai une aide sur une erreur puisque quand je compile et après débogage j'ai cette ligne du code en jaune avec Col=16385 et n=8194.
    Merci

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    f3.Cells(1, Col) = f3.Cells(n, "A")
    Dernière modification par Invité ; 04/02/2020 à 06h41.

  2. #2
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  3. #3
    Invité
    Invité(e)
    Par défaut
    Que faut il modifier ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
        NbVal = f3.[A3].End(xlDown).Row - 2
                     Col = 3
                     For n = 3 To NbVal + 2
                         f3.Cells(1, Col) = f3.Cells(n, "A")
                         f3.Cells(1, Col + 1) = f3.Cells(n, "B")
                         Col = Col + 2
                     Next n
    Dernière modification par Invité ; 04/02/2020 à 10h14.

  4. #4
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Il faut faire en sorte que Col ne dépasse pas 16384 !
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  5. #5
    Invité
    Invité(e)
    Par défaut
    Pouvez vous m'aider à le faire.

    Merci
    Dernière modification par Invité ; 04/02/2020 à 06h40.

  6. #6
    Expert confirmé
    Homme Profil pro
    Electrotechnicien
    Inscrit en
    Juillet 2016
    Messages
    3 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Electrotechnicien

    Informations forums :
    Inscription : Juillet 2016
    Messages : 3 232
    Points : 5 632
    Points
    5 632
    Par défaut
    Bonjour,

    Il faut regarder un peu plus haut, dans ce qui suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                     NbVal = f3.[A3].End(xlDown).Row - 2
                     Col = 3
                     For n = 3 To NbVal + 2
                         f3.Cells(1, Col) = f3.Cells(n, "A")
                         f3.Cells(1, Col + 1) = f3.Cells(n, "B")
                         Col = Col + 2
                     Next n
    Le problème doit venir de NbVal, il ne doit pas trouver la limite basse de la colonne A donc par défaut il renvoie le maximum soit 1 048 576.
    remplacez la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     NbVal = f3.[A3].End(xlDown).Row - 2
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     NbVal = f3.Range("A" & Rows.Count).End(xlUp).Row
    Cdlt

  7. #7
    Invité
    Invité(e)
    Par défaut
    ça marche bien. Merci beaucoup @ARTURO83 de votre aide.

  8. #8
    Invité
    Invité(e)
    Par défaut Ralentissement (4 Processeur(s) %)
    Bonjour,

    J'aimerai s'il vous plait savoir ce qui peut poser problème au lenteur d'ouverture d'un fichier contenant des macros .

    Merci
    Dernière modification par Invité ; 12/03/2020 à 12h06.

  9. #9
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Bonjour,
    Citation Envoyé par wat2010 Voir le message
    J'aimerai s'il vous plait dans ce code ci-dessous qu'il ne doit pas trouver la limite basse de la colonne (1 048 576) car ça ralentit.
    1 048 576, c'est le nombre de lignes, il n'y que 16 384 colonnes.
    C'est probablement pas le End(xlToLeft) qui ralentit ta macro, je pencherais plutôt pour une macro évènementielle sur Change.
    Sans autre explication, il est difficile de comprendre l'objectif recherché.
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  10. #10
    Invité
    Invité(e)
    Par défaut
    La macro fonctionne bien avec peu de lignes mais dès que je rajoute beaucoup plus de lignes j'ai un problème de lenteur d'ouverture du fichier et quand ça s'ouvre j'ai ça qui prend du temps: Ralentissement (4 Processeur(s) %) .

    Merci
    Dernière modification par Invité ; 12/03/2020 à 12h07.

  11. #11
    Expert confirmé Avatar de Patrice740
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2007
    Messages
    2 475
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 70
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 475
    Points : 5 630
    Points
    5 630
    Par défaut
    Citation Envoyé par wat2010 Voir le message
    La macro fonctionne bien avec peu de lignes mais ...
    Quelle macro ? (Où est le code ?)
    Est-ce la seule macro du classeur ?
    Cordialement,
    Patrice
    Personne ne peut détenir tout le savoir, c'est pour ça qu'on le partage.

    Pour dire merci, cliquer sur et quand la discussion est finie, penser à cliquer sur

  12. #12
    Invité
    Invité(e)
    Par défaut
    ça a marché en changeant de format d'enregistrement.
    Dernière modification par Invité ; 13/03/2020 à 02h35.

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 06/06/2013, 18h39
  2. Erreur vbscript en fonction du nombre de colonnes du csv
    Par matimat2k4 dans le forum VBScript
    Réponses: 4
    Dernier message: 18/03/2010, 21h40
  3. [débutant] nombre de colonne dan sun fichier csv
    Par mandagor dans le forum C++
    Réponses: 18
    Dernier message: 15/06/2005, 16h42
  4. [JTextArea]changer dynamiquement le nombre de colonnes
    Par MrDuChnok dans le forum Composants
    Réponses: 9
    Dernier message: 27/04/2004, 14h31
  5. [RDB$PRIMARY] Nombre de colonnes
    Par Lucien dans le forum InterBase
    Réponses: 4
    Dernier message: 17/01/2004, 13h55

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