Exporter des données depuis Excel

Fermé
AtomicNico Messages postés 5 Date d'inscription jeudi 23 juin 2016 Statut Membre Dernière intervention 30 juin 2016 - 23 juin 2016 à 14:18
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 - 30 juin 2016 à 15:40
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
A voir également:

2 réponses

Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
23 juin 2016 à 20:59
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
AtomicNico Messages postés 5 Date d'inscription jeudi 23 juin 2016 Statut Membre Dernière intervention 30 juin 2016
27 juin 2016 à 08:34
Merci pour cette réponse, je vais voir ça!
0
AtomicNico Messages postés 5 Date d'inscription jeudi 23 juin 2016 Statut Membre Dernière intervention 30 juin 2016
30 juin 2016 à 11:01
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
0
Whismeril Messages postés 19028 Date d'inscription mardi 11 mars 2003 Statut Non membre Dernière intervention 24 avril 2024 931
30 juin 2016 à 15:40
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.

0