Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

[VB .Net 2008 Express] Trier une plage dans un document Excel via Interop

2 réponses
Avatar
Bonjour,

Avec la DLL Microsoft.Office.Interop.Excel.dll, je génère un document Excel.

Dans la feuille active, j'ai une plage que j'ai besoin de trier.

La ligne 1 contient les titres à ne pas trier.

Les lignes 2 à 100 contiennent les données à trier.

Il y a 10 colonnes (de A à J).

J'ai essayé plusieurs syntaxes, sans succès.

Le seul tri qui j'ai réussi à effectuer est 1 tri de colonnes au lieu de
trier les lignes.

Dim xl As New Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim r As Excel.Range
'...
wb = xl.Workbooks.Add
ws = wb.Worksheets.Add
'...
'Le tri ne fonctionne pas comme souhaité
'r = ws.Range("A1:J100")
'r.Sort(ws.Cells(1, 1), Excel.XlSortOrder.xlAscending, , , , , ,
Excel.XlYesNoGuess.xlYes)
'Le tri ne fonctionne toujours pas comme souhaité même en adaptant les
différents paramètres
'r = ws.Range("A2:J100")
'r = ws.Range("A:J")
'r.Sort(ws.Cells(1, 1), Excel.XlSortOrder.xlAscending)
'r.EntireColumn.Sort...
'r.EntireRow.Sort...

Merci d'avance pour votre aide,
Stéphane

2 réponses

Avatar
jchtible
Bonjour Stéphane,

J'essaierais plutot de passer par un tri sur la selection dans Excel ...
'On selectionne la plage de donnée à trier
ws.Range("A2:J100").Select

'On fait un tri ascendant sur la 1ere colonne
xl.Selection.sort(Range("A2"), Excel.XlSortOrder.xlAscending)




"Stéphane" wrote:

Bonjour,

Avec la DLL Microsoft.Office.Interop.Excel.dll, je génère un document Excel.

Dans la feuille active, j'ai une plage que j'ai besoin de trier.

La ligne 1 contient les titres à ne pas trier.

Les lignes 2 à 100 contiennent les données à trier.

Il y a 10 colonnes (de A à J).

J'ai essayé plusieurs syntaxes, sans succès.

Le seul tri qui j'ai réussi à effectuer est 1 tri de colonnes au lieu de
trier les lignes.

Dim xl As New Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim r As Excel.Range
'...
wb = xl.Workbooks.Add
ws = wb.Worksheets.Add
'...
'Le tri ne fonctionne pas comme souhaité
'r = ws.Range("A1:J100")
'r.Sort(ws.Cells(1, 1), Excel.XlSortOrder.xlAscending, , , , , ,
Excel.XlYesNoGuess.xlYes)
'Le tri ne fonctionne toujours pas comme souhaité même en adaptant les
différents paramètres
'r = ws.Range("A2:J100")
'r = ws.Range("A:J")
'r.Sort(ws.Cells(1, 1), Excel.XlSortOrder.xlAscending)
'r.EntireColumn.Sort...
'r.EntireRow.Sort...

Merci d'avance pour votre aide,
Stéphane





Avatar
Avec quelques jours de retard, merci jchtible. Je vais regarder ca.

Stéphane

"jchtible" a écrit dans le message de
news:
Bonjour Stéphane,

J'essaierais plutot de passer par un tri sur la selection dans Excel ...
'On selectionne la plage de donnée à trier
ws.Range("A2:J100").Select

'On fait un tri ascendant sur la 1ere colonne
xl.Selection.sort(Range("A2"), Excel.XlSortOrder.xlAscending)




"Stéphane" wrote:

Bonjour,

Avec la DLL Microsoft.Office.Interop.Excel.dll, je génère un document
Excel.

Dans la feuille active, j'ai une plage que j'ai besoin de trier.

La ligne 1 contient les titres à ne pas trier.

Les lignes 2 à 100 contiennent les données à trier.

Il y a 10 colonnes (de A à J).

J'ai essayé plusieurs syntaxes, sans succès.

Le seul tri qui j'ai réussi à effectuer est 1 tri de colonnes au lieu de
trier les lignes.

Dim xl As New Excel.Application
Dim wb As Excel.Workbook
Dim ws As Excel.Worksheet
Dim r As Excel.Range
'...
wb = xl.Workbooks.Add
ws = wb.Worksheets.Add
'...
'Le tri ne fonctionne pas comme souhaité
'r = ws.Range("A1:J100")
'r.Sort(ws.Cells(1, 1), Excel.XlSortOrder.xlAscending, , , , , ,
Excel.XlYesNoGuess.xlYes)
'Le tri ne fonctionne toujours pas comme souhaité même en adaptant les
différents paramètres
'r = ws.Range("A2:J100")
'r = ws.Range("A:J")
'r.Sort(ws.Cells(1, 1), Excel.XlSortOrder.xlAscending)
'r.EntireColumn.Sort...
'r.EntireRow.Sort...

Merci d'avance pour votre aide,
Stéphane