Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » Visual Basic 6.0 / VBA » Spalten und Zeilen in Excel-Datei mittels VB löschen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
05.03.2008, 13:50 Uhr
~Richie01
Gast


Hallo Zusammen,

habe ein kleines Problem. Ich habe ein Programm geschrieben, was aus einer Crystal Reports (*.rpt) Datei automatisch einen Export nach Excel macht. Soweit so gut. Nun möchte ich gerne die Excel-Datei zusätzlich noch mittels VB bearbeiten lassen. Es sollen alle leeren Zeilen und alle leeren Spalten automatisch gelöscht werden. Wie kann ich das realisieren. Hier mein Programm für den Export via VB:


Visual Basic:
Private Sub Command1_Click()

On Error GoTo Login_Error

Dim objApplicat As Object
Set objApplication = CreateObject("CrystalRuntime.Application")

Dim strPath As String
strPath = "c:\1\CLX01.rpt"

Dim objReport As Object

Set objReport = objApplication.OpenReport(strPath, 1)

objReport.EnableParameterPrompting = False
objReport.ExportOptions.UseReportDateFormat = 1
objReport.ExportOptions.UseReportNumberFormat = 1
objReport.DisplayProgressDialog = False
objReport.ExportOptions.FormatType = 22 'crEFTExcel80
objReport.ExportOptions.DiskFileName = "c:\1\CLX01.xls"
objReport.ExportOptions.DestinationType = 1 'crEDTDiskFile
objReport.ExportOptions.ExcelAreaType = 4 'crDetail
objReport.ExportOptions.ExcelConvertDateToString = False
objReport.ExportOptions.ExcelUseWorksheetFunctions = True

If False = ReportConnectExternalDatabase(objReport, "Export to Excel", "", "") Then
Debug.Print "err"
End If

Debug.Print "Start"
objReport.Export False
Debug.Print "Finish"

Exit Sub

Login_Error:


Debug.Print "Description: " & Err.Description & " " & "Number: " & Err.Number & " " & "LastDllError: " & Err.LastDllError & " " & "Source: " & Err.Source

End Sub

Function ReportConnectExternalDatabase(ByRef objReport As Object, _
ByVal strDSN As String, _
ByVal strU As String, _
ByVal strP As String) As Boolean
ReportConnectExternalDatabase = True
strU = strU
strP = strP
If (strDSN = "") Then
strDSN = "Export to Excel"
If (strU = "") Then
strU = "User"
End If
If (strP = "") Then
strP = "password"
End If
End If

Dim i As Integer

'Logons
Dim nTablesCount As Integer
nTablesCount = objReport.Database.Tables.Count
Debug.Print "objReport.Database.Tables.Count " & Str(objReport.Database.Tables.Count)
For i = 1 To nTablesCount
objReport.Database.Tables(i).SetLogOnInfo strDSN, strDSN, strU, strP
Debug.Print "strDSN " & strDSN
Debug.Print "strU " & strU
Debug.Print "strP " & strP

'Test connection
ReportConnectExternalDatabase = objReport.Database.Tables(i).TestConnectivity
If ReportConnectExternalDatabase = False Then
Exit For
End If
Next i

End Function


Dieser Post wurde am 08.03.2008 um 12:29 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.03.2008, 14:03 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Naja vom Prinzip her hast du ja einfach nur in ne Exceldatei geschrieben.

Also Excel von VB aus öffnen und dann auf dem gewünschten Excelblatt die Zeilen und Spalten durchgehen und löschen.


Tipp zum Vorgehen

Der Aufbau in Excel ist eine Application der Arbeitsmappen (Worksbooks) zugeordnet sind. In jedem der Workbooks sind dann Abreitsblätter (Worksheets) drin.

Mit der Eigenschaften des Excelblattes UsedRange.Columns.Count und Used Range.Rows.Count bekommst du den x-y-Bereich innerhalb dem du nach leeren Spalten und Zeilen suchen kannst um diese dann zu löschen. Einfach stumpf in einer Schleife durchgehen und löschen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.03.2008, 14:34 Uhr
~Richie01
Gast


Okay, vielen Dank erstmal. Aber wie kann ich oder wo muss ich diese Schleife einfügen?
Muss ich das erstellte Excel-File vorher nochmal öffnen, um dann die leeren Spalten und Zeilen löschen zu können. Wäre nett wenn du mir helfen könntest ;-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
06.03.2008, 20:20 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Naja

1) Application starten

2) File öffnen

3) Sich das gewünschte Worksheet aus dem geöffneten Workbook schnappen...


dann halt in der Art


Visual Basic:

Dim i As Long

For i = 1 To UsedRange.Columns.Count

   'If leer dann löschen...

Next i

.
.
.



dann noch speichern und schließen...
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
07.03.2008, 10:26 Uhr
~Richie01
Gast


Genau das wollte ich ebend nicht. Ich möchte gerne, dass das ganze mit Hilfe eines VB-Programms erledigt wird, sprich in dem vorhandenen VB-Code integriert wird. Vielleicht hast du dafür ja auch eine Lösung / Idee ;-)
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
07.03.2008, 13:40 Uhr
Windalf
Der wo fast so viele Posts wie FloSoft...
(Operator)


Wenn du Excel "Datenbanklike" ansprichst, kannst du halt keine Operationen darauf ausführen die eben "nicht Datenbanklike" sind.

Vielleicht hat ja jemand anders noch ne Idee aber ich würde es so machen. Was spricht denn dagegen?
--
...fleißig wie zwei Weißbrote
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
08.03.2008, 12:31 Uhr
FloSoft
Medialer Over-Flow
(Administrator)



Zitat von ~Richie01:
Genau das wollte ich ebend nicht. Ich möchte gerne, dass das ganze mit Hilfe eines VB-Programms erledigt wird, sprich in dem vorhandenen VB-Code integriert wird. Vielleicht hast du dafür ja auch eine Lösung / Idee ;-)

naja machs doch so wie gesagt wurde:

nach deinem export, mit VB das Excel-sheet öffnen und dann eben die jeweiligen spalten entfernen über vb. Also Excel-Objekt erzeugen (sollte es Beispiele im inet geben) datei öffnen, bearbeiten, speichern - fertig
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ Visual Basic 6.0 / VBA ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: