Décaler les cellules vers le haut, fichier excel VB.NET
Résolu/Fermé
Hasstag
Messages postés
7
Date d'inscription
vendredi 17 juillet 2015
Statut
Membre
Dernière intervention
24 juillet 2015
-
17 juil. 2015 à 11:50
Hasstag Messages postés 7 Date d'inscription vendredi 17 juillet 2015 Statut Membre Dernière intervention 24 juillet 2015 - 24 juil. 2015 à 10:13
Hasstag Messages postés 7 Date d'inscription vendredi 17 juillet 2015 Statut Membre Dernière intervention 24 juillet 2015 - 24 juil. 2015 à 10:13
A voir également:
- Décaler les cellules vers le haut, fichier excel VB.NET
- Liste déroulante excel - Guide
- Fichier rar - Guide
- Formule excel - Guide
- Fichier host - Guide
- Fichier iso - Guide
2 réponses
Whismeril
Messages postés
18279
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
17 mars 2023
888
17 juil. 2015 à 13:35
17 juil. 2015 à 13:35
Bonjour,
j'ai posté une source C#, il y'a quelques années, dont un méthode permet de supprimer un range en choisissant le sens de décalage.
https://codes-sources.commentcamarche.net/source/50624-piloter-excel-via-microsoft-office-interop-excel
Tu peux la passer dans un traducteur en ligne
j'ai posté une source C#, il y'a quelques années, dont un méthode permet de supprimer un range en choisissant le sens de décalage.
https://codes-sources.commentcamarche.net/source/50624-piloter-excel-via-microsoft-office-interop-excel
Tu peux la passer dans un traducteur en ligne
cs_Le Pivert
Messages postés
7883
Date d'inscription
jeudi 13 septembre 2007
Statut
Contributeur
Dernière intervention
18 mars 2023
724
21 juil. 2015 à 12:03
21 juil. 2015 à 12:03
Bonjour,
Voir ceci pour piloter Excel.
Ensuite se servir de l'enregistreur de macro sous Excel et l'adapter en VB.Net
https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net
Voir ceci pour piloter Excel.
Ensuite se servir de l'enregistreur de macro sous Excel et l'adapter en VB.Net
https://codes-sources.commentcamarche.net/source/100410-piloter-office-en-vb-net
Modifié par Whismeril le 21/07/2015 à 21:48
Merci pour ta réponse.
J'ai essayé mais ça ne marche pas. voici mon code en VB.NET
Dim xlsapp As Microsoft.Office.Interop.Excel.Application Dim Xlsbook As Microsoft.Office.Interop.Excel.Workbook Dim xlWorkSheet As Microsoft.Office.Interop.Excel.Worksheet Dim misValue As Object = System.Reflection.Missing.Value xlsapp = New Microsoft.Office.Interop.Excel.Application Xlsbook = xlsapp.Workbooks.Open("\\vmware-host\Shared Folders\Bureau\KOTTMANNBDOX.xls") xlWorkSheet = Xlsbook.Sheets(1) Dim DEL = xlWorkSheet.Rows.Count - 1 For i = 1 To DEL If xlWorkSheet.Cells(DEL, 1).Value = Nothing Then xlWorkSheet.Rows(DEL, 1).Delete(Ascending) End If Next Xlsbook.Save() Xlsbook.Close() Xlsbook = Nothing xlsapp.Quit() xlsapp = Nothing GC.Collect() GC.WaitForPendingFinalizers() GC.Collect() killExl() ReleaseObject(xlsapp) ReleaseObject(Xlsbook) ReleaseObject(xlWorkSheet)EDIT: Ajout de la coloration syntaxique.
21 juil. 2015 à 21:56
Il faut d'abord sélectionner le range correspondant à une ligne.
21 juil. 2015 à 22:19
For i = 1 To 30 If xlWorkSheet.Cells(i, 1).Value = Nothing Then 'd'abord c'est i qu'il faut mettre ici et pas ta variable del Dim range As Microsoft.Office.Interop.Excel.Range range = xlWorkSheet.Range(i & ":" & i) 'selection du range range.Delete(Microsoft.Office.Interop.Excel.XlDeleteShiftDirection.xlShiftUp) 'suppression du range End If NextJe n'ai pas utilisé xlWorkSheet.Rows.Count, car ça te retourne non pas le nombre de lignes utilisées mais le nombre de lignes de base d'une feuille, soit 1048576 pour ma version d'excel
24 juil. 2015 à 10:13
xlWorkSheet.Rows.Count marche bien pour moi (Excel 2013).
La solution que j'ai adopté pour ce problème c'est de supprimer une ligne et recopier les autres une par une dans la cellule supérieure de chaque cellule et enfin, supprimer la dernière ligne qui reste vide.
Merci pour ton aide.