VB.net trouve la valeur maximale dans la gamme Excel

Nouveau au encoding VB, alors merci de m'en occuper.

Un projet de formulaires Windows sur lequel je travaille (à la fois pour l'intérêt personnel et pour le défi) est d'automatiser un process au travail, dans lequel un travail entrant dans le bureau aura plusieurs éléments qui lui seront attachés. Ces éléments sont réservés dans un DB SQL à l'aide d'un logiciel personnalisé (qui ne peut être évité) et ensuite tapé dans une feuille de calcul. J'essaie d'automatiser quelque peu ce process. J'ai réussi (avec l'aide de stackoverflow) pour créer une connection de ma forme au SQL Server, exécuter une requête, stocker les résultats dans un set de données et transférer ce premier set de données à mon excel.

Cependant, chaque jour, je dois append la feuille avec de nouveaux éléments / inputs. Les inputs dans la DB ont un numéro d'identification consécutif unique, donc mon idée est d'exécuter une requête Select pour les inputs> la plus haute ID déjà écrite pour excel.

J'ai déjà identifié la dernière ligne contenant des données (lrow) car j'aurai besoin de toute façon … (xlsht est ma feuille de travail active)

Dim lrow as long = 0 With xlSht lrow = .range("C" & .rows.count).end(Excel.XlDirection.xlUp).row End With 

Puis-je l'utiliser pour identifier le numéro d'identification le plus élevé de la gamme C6: C (lrow) ou (C: C) comme cela a été suggéré. Les données de la feuille de calcul ne sont pas dans l'ordre d'identification, alors il suffit de sélectionner la dernière cellule remplie dans cette colonne qui ne fonctionnera pas.

en utilisant les erreurs Application.max ("C: C") car "'max' n'est pas membre de system.windows.forms.application" et mon manque d'expérience signifie que je ne sais pas encore comment réparer ça!

J'ai cherché des suggestions, mais je ne trouve que des idées de code dans VBA et mon manque de connaissances est tel que je ne peux pas facilement la traduire ou la comprendre. Quelqu'un peut-il me pointer dans la bonne direction?

Merci beaucoup.

EDIT: en tant que solution de contournement, jusqu'à ce que je sache plus, j'ai créé une colonne cachée dans la feuille de calcul, dont une cellule (T6) contient la fonction 'max (C: C)' et je lise cette valeur dans mon VB code comme

  Dim maxvalue As Integer maxvalue = xlSht.range("T6").Value 

… mais j'aimerais en retirer finalement.

Merci

Vous pouvez utiliser la fonction SheetFunction pour get la valeur maximale.

  Dim xlapp As Microsoft.Office.Interop.Excel.Application xlapp = xlSht.Parent.Application Debug.Print xlapp.WorksheetFunction.Max(xlSht.Range("C:C")) 

Si vous avez déjà l'object d'application, vous avez juste besoin de la dernière ligne. J'utilise habituellement une déclaration sur les imports:

 Imports Microsoft.Office.Interop.Excel 

et bien sûr, vous aurez également besoin d'une reference de projet à Excel interop.