Trop de ligne à compter ?
Résolu
borntobealive
Messages postés
138
Date d'inscription
Statut
Membre
Dernière intervention
-
borntobealive Messages postés 138 Date d'inscription Statut Membre Dernière intervention -
borntobealive Messages postés 138 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
je fais actuellement du traitement de données, de beaucoup de donnée et la première étape de macro est le comptage des lignes. Elles sont 54320 dans mon premier fichier, je voulais utiliser la fonction countA pour enregistrer ce nombre dans une variable.
donc un code basique :
dec.wkcol est une worksheet et appl l'application dans laquelle je travaille (acompagnée d'un appl.visible = false et tout le toin toin pour qu'elle travail en fond)
la première instruction fonctionne très bien
la deuxième me renvoit : run-time error 1004 ( application-defined or object-defined error )
D'ou ma question est-il possible d'utiliser countA pour un long
1/ si non : y'a-t-il un autre moyen de connaitre le nombre de ligne ?
2/ si oui : pour quoi ça marche pas ? (snif)
je fais actuellement du traitement de données, de beaucoup de donnée et la première étape de macro est le comptage des lignes. Elles sont 54320 dans mon premier fichier, je voulais utiliser la fonction countA pour enregistrer ce nombre dans une variable.
donc un code basique :
dim M_nb_colonne as integer dim M_nb_ligne as long M_nb_colonne = appl.countA(dec.wkcol.range("4:4")) M_nb_ligne = appl.countA(dec.wkcol.Range("B:B"))
dec.wkcol est une worksheet et appl l'application dans laquelle je travaille (acompagnée d'un appl.visible = false et tout le toin toin pour qu'elle travail en fond)
la première instruction fonctionne très bien
la deuxième me renvoit : run-time error 1004 ( application-defined or object-defined error )
D'ou ma question est-il possible d'utiliser countA pour un long
1/ si non : y'a-t-il un autre moyen de connaitre le nombre de ligne ?
2/ si oui : pour quoi ça marche pas ? (snif)
A voir également:
- Trop de ligne à compter ?
- Partage de photos en ligne - Guide
- Aller à la ligne excel - Guide
- Mètre en ligne - Guide
- Formulaire en ligne de meta - Guide
- Site de vente en ligne particulier - Guide
3 réponses
ceci fonctionne :
Dim appl As Application Dim wkcol As Worksheet Set appl = Application Set wkcol = ActiveSheet Dim M_nb_colonne As Integer Dim M_nb_ligne As Long M_nb_colonne = appl.CountA(wkcol.Range("4:4")) M_nb_ligne = appl.CountA(wkcol.Range("B:B"))
ça c'est presque ce que j'ai déjà, la seule différence c'est que je fais :
ce qui me chiffonne c'est que le premier marche (M_nb_colonne) très bien et pas le second ( j'ai aussi vérifié, je ne suis as en numérotation R1C1)
dim appl as new excel.application
ce qui me chiffonne c'est que le premier marche (M_nb_colonne) très bien et pas le second ( j'ai aussi vérifié, je ne suis as en numérotation R1C1)
dec est un module ou j'ai déclaré toutes mes variables publiques (wkcol en fait partie) j'ai fait un set dec.wkcol dans le module qui ouvre le classeur et qui fait l'importation des données.
si le problème avait été au niveau de la déclaration de dec.wkcol, le nb de colonne n'aurait pas marché.
Comme j'étais bloqué j'ai fais un contage de bourrin manuel :
en attendant de trouver mieux
si le problème avait été au niveau de la déclaration de dec.wkcol, le nb de colonne n'aurait pas marché.
Comme j'étais bloqué j'ai fais un contage de bourrin manuel :
dim I as long I = 1 do while dec.wkcol.cells( I , 1 ) <> "" I = I + 1 loop M _nb_ligne = I
en attendant de trouver mieux
J'ai finalement trouver le problême, j'ai oublier de te dire que
est dans un autre module donc forcement l'objet n'est pas déclaré dans le module renseignement d'où l'erreur.
Bilan il fallait déclarer hors de toute sub :
et tout fonctionne
Merci Patrice 33740 de t'être interessé à mon problème !
dim appl as new excel.application
est dans un autre module donc forcement l'objet n'est pas déclaré dans le module renseignement d'où l'erreur.
Bilan il fallait déclarer hors de toute sub :
public appl as new excel.application
et tout fonctionne
Merci Patrice 33740 de t'être interessé à mon problème !