Besoin d'aide avec VBA

Fermé
Raven76 Messages postés 250 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 21 février 2024 - 19 mars 2012 à 12:11
Raven76 Messages postés 250 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 21 février 2024 - 19 mars 2012 à 14:13
Bonjour,
j'ai actuellement crée un petit programme en VBA mais je bloque sur un détail.

Je vous explique:
A l'aide d'un bouton, le programme doit filtrer avec des critères définis dans le code une base de donnée (feuil1), le résultat doit être copié puis collé sur une autre feuille(feuil2).

Le problème c'est qu'il ne faut pas copier les cellules vides car sinon la réouverture du fichier est très longue.
Il faut savoir que le nombre de ligne peut être variable en fonction du résultat du filtre.

Pour infos, la base de donnée contient 17 colonnes

Merci pour vos éventuelles réponses.

4 réponses

Bonjour,

Question: Comment des cellules vides peuvent-elles allourdir ton fichier? Ou alors elles ne sont pas vides.
Ton problème est probablement ailleurs.

;)
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
19 mars 2012 à 13:46
Tes cellules sont tout simplement vide. Ouvre un nouveau fichier excel et ce ne sont que des cellules vide...

Comme a dit le Grand maitre Yoda, l'erreur est ailleurs :)
Ecoutons la sagesse ^^
0
Raven76 Messages postés 250 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 21 février 2024 15
19 mars 2012 à 13:56
je ne sais pas, mais j'avais une formule qui me copié de la 1ere ligne du résultat du filtre jusqu'à la cellule 65536 de chaque colonnes.
le copier coller fonctionnais mais pour ré-ouvrir le fichier de la base de donnée, cela prenais un temps interminable.
0
Submin Messages postés 382 Date d'inscription vendredi 2 mars 2012 Statut Membre Dernière intervention 1 avril 2016 226
Modifié par Submin le 19/03/2012 à 14:08
tu peux utiliser cette fonction si tu veux mais l'erreur doit venir d'ailleur, des choses qui doivent trainer :

Dim DerniereLigne As Integer
DerniereLigne = Columns(1).Find("*", , , , xlByColumns, xlPrevious).Row

ça permet de connaitre la derniere ligne utilisé (valable pour toutes les versions d'office, enfin surtout pour palier la différence 2003 - 2007)
0
Raven76 Messages postés 250 Date d'inscription samedi 10 avril 2010 Statut Membre Dernière intervention 21 février 2024 15
19 mars 2012 à 14:13
d'accord je vais essayer ca^^
0