Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
256to260
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
256to260
256to260
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VB soll wechseln nicht öffnen ?

VB soll wechseln nicht öffnen ?
21.05.2003 18:51:24
Bernd Schneider
Hallo Exel Spezis
ich habe ein kleines Problem mit diesen VB Scripts
Das letzte Script müsste meines erachtens leicht
abgeändert werden damit die sache rundläuft.
Bei dieser Konfiguration derhalte ich jedoch einen
Fehler.

In der arbeitsmappe steht:

Private Sub Workbook_Open()
GetObject ("C:\abl\Daten.xls")
End Sub

! Ist erforderlich da sonst die folgende Volltextsuche nicht funzt die in Tabelle1 "Berechnungs Eingabe" eingebettet ist.


Private Sub ListBox1_Click()
Workbooks("Daten.xls").Sheets(1).Range("A" & CStr(ListBox1.List(ListBox1.ListIndex, 1)) & ":G" & CStr(ListBox1.List(ListBox1.ListIndex, 1))).Copy ActiveSheet.Range("A1:G1")
End Sub

Private Sub TextBox1_Change()
Dim Zelle As Range, Adresse As String
ListBox1.Clear
With Workbooks("Daten.xls").Sheets(1).Range("A2:G9999")
Set Zelle = .Find(What:=TextBox1.Value, LookAt:=xlPart)
If Not Zelle Is Nothing Then
Adresse = Zelle.Address
Do
ListBox1.AddItem Zelle.Value
ListBox1.List(ListBox1.ListCount - 1, 1) = Zelle.Row
Set Zelle = .FindNext(Zelle)
Loop While Not Zelle Is Nothing And Zelle.Address <> Adresse
End If
End With
If Adresse <> "" Then Call sortieren(0, ListBox1.ListCount - 1)
End Sub

Private Sub sortieren(Untergrenze As Long, Obergrenze As Long)
Dim index1 As Long, index2 As Long, Element1 As String, Element2 As Long, Zwischenspeicher As String
index1 = Untergrenze
index2 = Obergrenze
Zwischenspeicher = ListBox1.List(((Untergrenze + Obergrenze) / 2) \ 1, 0)
Do
Do While ListBox1.List(index1, 0) < Zwischenspeicher
index1 = index1 + 1
Loop
Do While Zwischenspeicher < ListBox1.List(index2, 0)
index2 = index2 - 1
Loop
If index1 <= index2 Then
Element1 = ListBox1.List(index1, 0)
Element2 = ListBox1.List(index1, 1)
ListBox1.List(index1, 0) = ListBox1.List(index2, 0)
ListBox1.List(index1, 1) = ListBox1.List(index2, 1)
ListBox1.List(index2, 0) = Element1
ListBox1.List(index2, 1) = Element2
index1 = index1 + 1
index2 = index2 - 1
End If
Loop Until index1 > index2
If Untergrenze < index2 Then Call sortieren(Untergrenze, index2)
If index1 < Obergrenze Then Call sortieren(index1, Obergrenze)
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

End Sub

hiermit wird permanent nach Treffern gesucht und muss immer Ausgeführt sein. (Ist echt Super so, findet alles !)

wenn nun jedoch die abgefragte Adresse nicht vorhanden ist, muss mann sie anlegen dazu wird die Adresse 1zeilig und 7spaltig angegeben, bei cklick auf Übernehmen kommt dieses script zum tragen:

Sub Übernehmen_der_Daten_Click()
Dim Reihe As String
Reihe = ActiveCell.Row
Range(Cells(Reihe, 1), Cells(Reihe, 7)).Copy
Workbooks.Open Filename:="C:\abl\Daten.xls" 'hier ist der Fehler
Sheets("Daten").Activate
Range("A1").Select
ActiveCell.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
ActiveWindow.Close
Sheets("Berechnungs Eingabe").Select
Application.CutCopyMode = False
End Sub

welches jetzt aber einen Fehler gibt weil die Datei Daten.xls bereits geöffnet ist (Ausgeblendet), ansich muss das Übernahme Script doch nur so abgeändert werden das es nicht Daten.xls öffnet sondern aktiviert und nach dem Eintrag speichert und wieder deaktiviert (Ausblenden) (nicht schliessen, da sonst die Volltextsuche nicht mehr geht)


Hat einer von Euch einen Tip ?
MfG Bernd Schneider

12
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Re: VB soll wechseln nicht öffnen ?
21.05.2003 18:59:57
PeterW

Hallo Bernd,

die Mappe muss nicht aktiviert sein, um etwas dort hineinschreíben zu können. Ist ungetestet aber sollte klappen:

Gruß
Peter

klappt nicht oder ich mach was falsch
21.05.2003 19:12:21
B. Schneider

der code sieht jetzt so aus

Sub Übernehmen_der_Daten_Click()
Dim Reihe As String
Reihe = ActiveCell.Row
Range(Cells(Reihe, 1), Cells(Reihe, 7)).Copy _
Destination:=Workbooks("Daten.xls").Sheets("Daten").Range("A65536").End(xlUp).Row + 1
' Range(Cells(Reihe, 1), Cells(Reihe, 7)).Copy
' Workbooks.Open Filename:="C:\abl\Daten.xls"
' Sheets("Daten").Activate
' Range("A1").Select
' ActiveCell.End(xlDown).Offset(1, 0).Select
ActiveSheet.Paste
ActiveWorkbook.Save
' ActiveWindow.Close
Sheets("Berechnungs Eingabe").Select
Application.CutCopyMode = False
End Sub

habe ich den code falsch eingefügt ?
gruß Bernd

Anzeige
Re: klappt nicht oder ich mach was falsch
21.05.2003 19:31:14
Michael Schirow

Hi,

destination muss ein Range-Objekt sein (hab mal 2 zeilen draus gemacht):

Sub Übernehmen_der_Daten_Click()
Dim Reihe As String
Reihe = ActiveCell.Row

...
dim rDest as range
set rDest = Sheets("Daten").Range("A65536").End(xlUp).offset(1,0)
Range(Cells(Reihe, 1), Cells(Reihe, 7)).Copy rDest
...

ActiveWorkbook.Save
' ActiveWindow.Close

End Sub


MfG, Michael


Re: klappt nicht oder ich mach was falsch
21.05.2003 19:36:46
PeterW

Hallo Bernd,

stimmt, klappt so nicht. Aber versuch mal das - geht zumindest bei mir.

Gruß
Peter

behandel mich mal als dummi :)
21.05.2003 19:39:02
B. Schneider

wie genau muss der komplette code aussehen ?

ich binn ziemlich neu in dem Gebiet

THX Bernd

Anzeige
Re: behandel mich mal als dummi :)
21.05.2003 19:44:42
PeterW

Hallo Bernd,

der komplette Code sieht so aus:

Gruß
Peter

Jau das haut hin Supi !!!
21.05.2003 19:45:55
B. Schneider

vielen Dank !!!

ich liebe dieses Forum :-))


Jau es Funzt many THX
21.05.2003 19:47:07
B. Schneider

vielen lieben Dank

Grüße Bernd

Re: behandel mich mal als dummi :)
21.05.2003 19:49:05
Michael Schirow

Hi Bernd,

mein Vorschlag ist eigentlich komplett :), es sei denn, ich hab mich vertippert. Ist eine Variante von Peters 2. Posting, das ich grad gesehen hab.

HTH, Michael

many thanks jetzt gehts :))
21.05.2003 20:00:05
B. Schneider

...

Re: behandel mich mal als dummi :)
21.05.2003 20:06:06
PeterW

Hallo Michael,

fast komplett;), das Ziel ist ein Sheet in einer anderen Arbeitsmappe.

Gruß
Peter

Re: behandel mich mal als dummi :)
21.05.2003 21:10:21
Michael Schirow

uuups, hast Recht Peter :-)

Michael

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige