Exporter des données depuis Excel [Fermé]

Signaler
Messages postés
5
Date d'inscription
jeudi 23 juin 2016
Statut
Membre
Dernière intervention
30 juin 2016
-
Messages postés
15922
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
-
Bonjour!

Je suis un étudiant en stage et mon cursus est l'ingénierie mécanique mais mon tuteur m'a demandé de faire un petit programme en VB pour automatiser certaines tâches. Alors me voila à chercher des tutos sur internet pour ça cependant j'ai quelques questions...

J'ai donc un fichier Excel de pièce qui ont leur données extraites comme ceci:
http://i.stack.imgur.com/l0VLF.jpg

Donc en gros, j'ai des pièces et les données de ces pièces se trouvent sur 2 ou 3 lignes selon la géométrie de la pièce. Il faut que je récupère les données de ces pièces pour pouvoir faire des calculs plus tard. J'ai commencé à écrire mon code mais je suis bloqué sur une partie.

Dim Exel As Excel.Application
Dim nbrePieceUni As Integer
Dim i, j As Integer
Dim Range As Excel.Range
Dim xWorksheet As Excel.Worksheet

Range = xWorksheet.UsedRange

For i = 2 to Range.Rows.Count
#If xWorksheet.Cell(i,1) <> xWorksheet.Cell(i-1,1) Then
nbrePieceUni = nbrePieceUni + 1
#Else
'quelque chose en fonction de i qui va compter le nombre de lignes

Next i

J'ai commencé à l'écrire en VB parce que j'ai des bases mais en cherchant un peu sur internet, beaucoup de personnes conseillent de l'écrire avec une procédure OLEdb.

Est-ce que quelqu'un peut me dire si je devrais continuer avec mon code en VB ou essayer avec OLEdb (sachant que je n'ai aucune connaissance avec OLEdb)?
Si VB: est-ce que vous pouvez me proposer un truc pour faire le décompte des lignes pour chaque item sans que ça me réinitialise le compteur général?
Si OLEdb: comment faire? :)

Si vous avez besoin d'explications, n'hésitez pas à demander,

Cordialement,
N

2 réponses

Messages postés
15922
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
701
Bonsoir

Tu trouveras quelques fonctions par l'api (donc la méthode que tu as commencée) ici
https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net

D'autres en c# là
https://codes-sources.commentcamarche.net/source/50624-piloter-excel-via-microsoft-office-interop-excel
Il y a des traducteurs en ligne entre c# et Vb.net
1
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 65492 internautes nous ont dit merci ce mois-ci

Messages postés
5
Date d'inscription
jeudi 23 juin 2016
Statut
Membre
Dernière intervention
30 juin 2016

Merci pour cette réponse, je vais voir ça!
Messages postés
5
Date d'inscription
jeudi 23 juin 2016
Statut
Membre
Dernière intervention
30 juin 2016

Bonjour,

Merci encore de la réponse, j'ai bien avancé mais je me demandais s'il y avait une commande qui permettait de sélectionner une colonne par son nom plutôt que par UsedRange.Cells(x,y).Value2

J'ai vu ColumnName = "Identifier" mais je ne sais pas si c'est utilisable directement sachant que la façon dont c'est utilisé dans le code, c'est la création de la dite colonne...

Merci d'avance
Messages postés
15922
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
12 mai 2021
701
Dans mon code (le deuxième lien), tu as une méthode SelectionnerColonne() qui sélectionne par la lettre, il y a un exemple dans le bouton "Supprime Colonne" du projet de test.

Sélectionner directement par le nom je ne sais pas si ça se fait, mais au pire, tu lis la première ligne, tu fais un dictionnaire entre le nom et la lettre.