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

VB.NET Discussion :

Excel - éviter un #N/A


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 33
    Par défaut Excel - éviter un #N/A
    Bonjour,

    J'utilise actuellement la recopie d'un tableau 2D dans une feuille Excel.
    Ce tableau est à dimensions variables.

    Voici la ligne de recopie du tableau sur la feuille Excel:
    feuilleXL.Cells.Value = Tableau2D

    Le souci que je rencontre est que là où mon tableau n'a pas d'impact sur la feuille Excel, la donnée "#N/A" est écrite ce qui me donne un fichier Excel (beaucoup!) trop volumineux !

    Par exemple si j'ai un tableau de 3 colonnes et de 10 lignes, les données seront remplies (sur la feuille Excel) dans les cellules des 3 premières colonnes et des 10 premières lignes et le reste des cellules seront écrites avec "#N/A".

    Existe-t-il un moyen d'éviter cette erreur ?!

    ps: je ne dois surtout pas utiliser du remplissage cellule par cellule car le temps d'exécution est beaucoup trop long.

    Merci,

    J

  2. #2
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Ah oui, quand même. J'ai essayé et mon classeur a terminé à 200 Mo...

    Ce que tu peux faire, c'est sélectionner les lignes et colonnes de la feuille que tu vas renseigner. Exemple pour un tableau de 3x10, tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    feuilleXL.get_Range("A1", "J3").Cells.Value = Tableau2D
    La difficulté dans ce cas, sera de prévoir les coordonnées des cases (ou plutot de la lettre de la case de fin. La première sera automatiquement A1).

    Remarques :
    - Excel (avant la version 2007) est limité à 65536 lignes (comme tu le sais) et 256 colonnes
    - Après la colonne Z, les lettres sont doublées : AA, AB,...


    Bref, le petit algorithme qui te permettra de trouver la lettre va être rigolo à implémenter, je pense ! Un modulo 26 est une piste à creuser

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    33
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 33
    Par défaut
    Tout à fait ,

    197 Mo par feuille ... il faut avoir des actions chez Corsair !

    Sinon j'ai utilisé ta méthode, nickel !

    Je fais un Select Case du nombre de fois que j'ai eu 65536 lignes et ca me donne 17 possibilités de trouver la valeur de la colonne. Sachant que le nombre de colonne est fixe, je connais chacune des 17 possibilités.

    Pas spécialement astucieux mais c'est simple, rapide et ça fonctionne !

    Merci Skalp,

    J

  4. #4
    Rédacteur/Modérateur
    Avatar de Skalp
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 694
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 694
    Par défaut
    Citation Envoyé par amoniaque Voir le message
    Sinon j'ai utilisé ta méthode, nickel !


    Citation Envoyé par amoniaque Voir le message
    Je fais un Select Case du nombre de fois que j'ai eu 65536 lignes et ca me donne 17 possibilités de trouver la valeur de la colonne. Sachant que le nombre de colonne est fixe, je connais chacune des 17 possibilités.

    Pas spécialement astucieux mais c'est simple, rapide et ça fonctionne !
    Oui, il faut savoir aussi rester simple. Je suis également un fervent utilisateur de la méthode K.I.S.S. (Keep It Simple and Stupid).

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/03/2013, 09h49
  2. Réponses: 6
    Dernier message: 22/07/2009, 14h51
  3. Réponses: 12
    Dernier message: 24/10/2007, 12h00
  4. Réponses: 4
    Dernier message: 20/02/2007, 16h50
  5. VB EXCEL : éviter le message du presse papier à la fermeture
    Par repié dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 06/01/2006, 14h13

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