Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
220to224
220to224
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Tabellen

Tabellen
17.02.2003 14:49:36
steffen
hallo!

ich hab da folgendes problem: in einem textfile befinden sich bestimmte anweisungen mit links zu anderen textfiles. die analyse dieser links erfolgt durch den import dieser dateien ins excel als text. wird ein verweis gefunden, wird die entsprechende datei auf einem neuen blatt geöffnet und immer so weiter. wenn es keinen weiteren verweis mehr gibt, wird das betreffende blatt gelöscht und die verarbeitung auf dem vorherigen blatt fortgesetzt. soweit so gut. das programm läuft auch fix durch und lässt sich auch speichern. aber nun kommts. die dateien sind danach nicht mehr zu öffnen, weil ein ausnahmefehler beim öffnen aufgetreten ist. bei der näheren analyse hab ich festgestellt, dass obwohl nur noch ein blatt in der Arbeitsmappe ist, und auch nur angezeigt wird, dass bei vb im projektexplorer wesentlich mehr mappen vorhanden sein sollen. die entsprechenden mappen lösche ich aber mit sheets(nummer).delete. weiss wer, wie ich diese Tabellen sauberer löschen kann, bzw. wie sich das problem umgehen lässt? ich hab auch schon versucht, alle nasen lang die hauptdatei abzuspeichern, damit die leichen da verschwinden, allerdings scheint sich der erfolg in grenzen zu halten. da die verweise zum teil sehr verzweigt sind, stoße ich da scheinbar auch an ein limit von excel bzgl. der anzahl der tabellenblätter innerhalb eines workbooks. deshalb muss ich die leichen los werden. da es innerhalb eines Makros läuft, schalte ich vor dem löschen die häßliche popup-meldung dass die blätter unwiderruflich gelöscht werden aus mittels Application.DisplayAlerts = False. danke für jeden tip.

bye.steffen.

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: Tabellen
17.02.2003 14:55:48
Michael Scheffler

Hallo Steffen,

konsequente Kleinschreibung mag eine liebenswerte (?) Macke sein, macht sich bei einer Frage, wo Du etwas von anderen willst, aber sehr schlecht.

Schau bitte Deinen Text an, Kommata, wo Du lustig bist, keine Absätze, kein Code-Beispiel.

Schade eigentlich

Micha

Re: Tabellen
17.02.2003 15:12:34
steffen

ja servus micha- und was hat mir das jetzt gebracht? NIX! das ist ein zusammenhängendes problem :-) und was das hauptproblem ist, bei der eingabemaske kann ich nicht so ohne weiteres meinem kreativen gedanken mit absätzen und so freien lauf lassen... sorry dafür. was die kleinschreibung angeht, denke ich, dass dies eine gewöhnungssache ist. bei der kommasetzung kann sich gestritten werden, aber die großteil wird wohl eindeutig und richtig sein. ansonsten werd ich wohl jetzt immer den konstruktiven tip dranhängen, dass nur weiterführende antworten mir was bringen.

und zum code-beispiel: soll ich den ganzen code posten? das Makro ist zwar nicht lang, aber unübersichtlich strukturiert, halt eben noch in der entwicklungs- und testphase. die wichtigsten codebeispiele stehen eh in der anfrage.

bye.steffen.

Anzeige
Tabellen - noch offen, da für mich unlesbar...
17.02.2003 15:28:32
Michael Scheffler

Hallo Steffen,

das Problem ist, dass ich und andere (das Thema gab es in diesem Forum schon) Deinen Text so ohne Absätze und nur kleingeschrieben nicht lesen wollen. Ich wäre gern bereit, Dir mit einer "konstruktiven Antwort" zu helfen, aber ich bin eben schon etwas älter und da liest sich das sehr schlecht. Und nun ist die Frage halt, ob der Prophet zum Berg oder der Berg zum Propheten geht... Und da wäre es eben sinnvoll, wenn Du eine Bitte hast, dass Du Dich allg. Gepflogenheiten anpasst und nicht umgekehrt.

Ja und zur zweiten Frage, der Code nützt i.a. sehr, Hajo_Zi spricht von der "Glaskugel", die er nicht hat.

Vielleicht findest Du ja jemanden...

Viel Glück

Micha





Anzeige
Re: Tabellen - noch offen, da
17.02.2003 15:41:55
steffen

Okay, ich werds ja sehen. Zum allgemeinem Verständnis füge ich mal eben den Code ein, der da wäre:

Sub start()
k = Range("A9")
na = Range("A6")
Workbooks.Add
ActiveWorkbook.SaveAs (k)
ActiveSheet.name = "Start"
steuerung (na)
End Sub


Sub steuerung(na)
dirna = "d:\grace_offline\gr1_off\program\"
Sheets.Add
ActiveSheet.name = 1
s = 1
t = 3
n = 10
k = 2
s1 = 1
flag1 = 0
Call einlesen(dirna, na)
Do While s > 0
Do While Cells(t, 1) <> "" Or Cells(t + 1, 1) <> ""
Do While Cells(t, s1) <> ""
If Right(Cells(t, s1), 3) = "ctl" Then
nam = Namen(Cells(t, s1))
Sheets("Start").Hyperlinks.Add Anchor:=Sheets("Start").Cells(n, k + 1), Address:= _
dirna & nam, TextToDisplay:=nam
Sheets("Start").Cells(n, k) = "-->"
Range("Z1") = t
Sheets.Add
s = s + 1
ActiveSheet.name = s
On Error GoTo 1
Call einlesen(dirna, nam)
t = 3
k = k + 2
s1 = 0
End If
s1 = s1 + 1
Loop
s1 = 1
t = t + 1
Loop
Application.DisplayAlerts = False
If s > 0 Then Sheets("" & (s)).Delete

s = s - 1
k = k - 2
If s > 0 Then Sheets("" & s).Activate
If flag1 = 0 Then
n = n + 1
Else
flag1 = 0
End If
t = Range("Z1") + 1
Application.DisplayAlerts = True
ActiveWorkbook.Save

Loop
Exit Sub
1: On Error GoTo 0
Sheets("Start").Cells(n, k + 1).Interior.ColorIndex = 3
n = n + 1
flag1 = 1
Resume Next
End Sub


Sub einlesen(dirna, na)

With ActiveSheet.QueryTables.Add(Connection:= _
"TEXT;" & dirna & na, _
Destination:=Range("A3"))
.name = Left(na, Len(na) - 4)
.FieldNames = True
.RowNumbers = False
.FillAdjacentFormulas = False
.PreserveFormatting = True
.RefreshOnFileOpen = False
.RefreshStyle = xlInsertDeleteCells
.SavePassword = False
.SaveData = True
.AdjustColumnWidth = True
.RefreshPeriod = 0
.TextFilePromptOnRefresh = False
.TextFilePlatform = xlWindows
.TextFileStartRow = 1
.TextFileParseType = xlDelimited
.TextFileTextQualifier = xlTextQualifierNone
.TextFileConsecutiveDelimiter = True
.TextFileTabDelimiter = True
.TextFileSemicolonDelimiter = False
.TextFileCommaDelimiter = False
.TextFileSpaceDelimiter = True
.TextFileColumnDataTypes = Array(2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2)
.Refresh BackgroundQuery:=False
End With
t = 3
Do While Cells(t, 1) <> "" Or Cells(t + 1, 1) <> ""
If Left(Cells(t, 1), 1) = "*" Then
Rows(t).Delete
t = t - 1
End If
t = t + 1
Loop
End Sub

Function Namen(name)
s1 = 1

Do While s1 < Len(name)
k = Mid(name, s1, 1)
If s1 < Len(name) And k = "\" Then
Namen = Right(name, Len(name) - s1)
Exit Function
End If
s1 = s1 + 1
Loop
Namen = name
End Function

Vorsicht, es sind drei Subroutinen und eine Funktion. Okay, das Problem ist folgendes:

Scheinbar werden nicht alle Tabellenblätter gelöscht, obwohl die angeblich gelöschten Blätter im reinen Excel nicht mehr zu sehen sind, werden sie im ProjektExplorer von VB noch angezeigt. Dabei wird "TabelleXYZ (F)" angezeigt. XYZ steht für die fortlaufende Nummer beim Einfügen von neuen Blättern, F für den von mir vergebenen Namen. Da sich die Hauptroutine immer wieder eine Hilfsroutine ruft, wird der von mir vergebene Name, welcher auch für die Tiefe der Links steht, natürlich mehrfach innerhalb der Analyse vergeben. Vielleicht hängt es damit zusammen. Keine Ahnung, wie und ob man das umgehen kann.

Jetzt bin ich auf konstruktive Antworten ja gespannt.
Servus.


Anzeige
Re: Tabellen - noch offen, da
17.02.2003 16:57:16
Michael Scheffler

Hallo Steffen,

ich rate an solchen Stellen immer zu:

Option Explicit

und richtiger Dimensionierung ALLER Variable.

Bei Dir also alle Zeilenzähler as Long, alle String entweder Variant oder String usw.

Nun z.B.:
Option Explicit
Sub start()
Dim strK As String, strNa As String
strK = Worksheets("Tabelle1").Range("A9").Value
strNa = Range("A6")
Workbooks.Add
ActiveWorkbook.SaveAs (strK)
ActiveSheet.Name = "Start"
Steuerung (strNa)
End Sub

Sub steuerung(strNa As String)-> Hier muss wahrscheinlich noch das aktive Workbook mit in die Argumentliste...

Bitte baue erst mal alles nach diesem Muster um, da erledigen sich viele Dinge von selbst.

Gruß

Micha



Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige