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

Daten-Bereich fuer Export aktivieren

Daten-Bereich fuer Export aktivieren
21.03.2006 13:50:14
JMR
Geehrtes Forum!
Habe leider schon wieder ein VBA-Problem und hoffe mir wird hier einmal mehr geholfen...
Kleiner Tabellenauszug unter :
https://www.herber.de/bbs/user/32091.xls
Problem:
Mit Hilfe des folgenden Codeauszuges wird ein Firmenname in Spalte A gesucht, der ueber Inputbox durch den Anwender eingegeben (CasaEstero)wurde.
Columns("A:A").Activate
Set Suche = Range("A:A").Find(CasaEstero, After:=ActiveCell, LookIn:=xlFormulas, LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext)
If Suche Is Nothing Then
MsgBox "Casa Estero non trovato"
Else
Suche.Activate
End If
Soweit so gut. Nun soll der diesem Firmenamen zugeordnete Tabellenbereich kopiert werden (im Tabellenauszug wird also z.B. Blue Star gefunden, der zugeordnete Bereich waere dann A1 bis I6). Die Spaltenanzahl aendert sich nie, die Zeilenanzahl (bei aktualisieren der PIVOT-Tabelle) schon.
Wie gelingt es mir diesen Bereich zu kopieren?
Vielen Dank fuer eure Denkanstoesse!
Gruesse,
Jan

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Daten-Bereich fuer Export aktivieren
21.03.2006 14:01:39
IngGi
Hallo Jan,
wenn zwischen den Firmen immer eine Leerzeile ist, sollte dies funktionieren:
Range(Suche, Suche.Offset(Suche.Offset(2, 2).End(xlDown).Row - 1, 8)).Copy
Gruß Ingolf
AW: Daten-Bereich fuer Export aktivieren
21.03.2006 14:28:37
IngGi
Hallo nochmal,
'tschuldigung, kleiner Denkfehler von mir. So funktioniert das Ganze natürlich nur für die Firma, die ab Zeile 1 steht. Daher folgende Korrektur:
Range(Suche, Suche.Offset(Suche.Offset(2, 2).End(xlDown).Row - Suche.Row, 8)).Copy
Gruß Ingolf
AW: Daten-Bereich fuer Export aktivieren
21.03.2006 14:34:42
JMR
Hi!
Deine neue Zeile laeuft bei mir leider nicht, Error "13"...
Frage: zur Berechnung des 2.Offset muss ich auch von "Suche" aus gehen?
Gruss,
Jan
Anzeige
AW: Daten-Bereich fuer Export aktivieren
21.03.2006 14:29:27
JMR
Hallo Ingolf!
Dank Dir fuer die schnelle Antwort, habe bereits ein wenig mit deiner Loesung gespielt:
Range(Cerca, Cerca.Offset(Cerca.Offset(0, 6).End(xlDown).Row - 1, 8)).Copy, denn Spalte G ist dann fuer End(xlDown besser geeignet...
Komme leider nicht auf die richtige Loesung, denn die Bereiche werden nicht richtig gefunden. Ich habe mal unter :
https://www.herber.de/bbs/user/32095.xls
einen groesserern Tabellenauszug bereitgestellt. Es muessten also je nach Anwender-Eingabe, z.B. der Bereich A6:I12 (Apolda), A14:I19 (Atlantic) oder z.B. A31:I52 (EVD) kopiert werden...
Bist du noch da, um mir weiterzuhelfen?
Gruss,
Jan
Anzeige
AW: Daten-Bereich fuer Export aktivieren
21.03.2006 14:39:15
IngGi
Hallo Jan,
mit meiner korrigierten Programmzeile und deiner Beispieldatei hat das jetzt für APOLDA funktioniert. Hier mein Testprogramm:

Sub x()
Dim Suche As Range
Set Suche = Range("A:A").Find(what:="APOLDA")
Range(Suche, Suche.Offset(Suche.Offset(0, 6).End(xlDown).Row - Suche.Row, 8)).Copy
End Sub
Gruß Ingolf
AW: Daten-Bereich fuer Export aktivieren
21.03.2006 15:06:22
JMR
Hallo !
Es funktioniert! Mein Fehler war die Else-Bedingung der If-Abfrage:
If Suche Is Nothing Then
MsgBox "Casa Estero non trovato"
'Else
' Suche.Select
End If
Dieses verfluchte Selektieren...:-)
Ich haette nur noch eine Nachfrage zum Verstaendnis Deiner Loesung. Warum muss es
"- Suche" heissen?
Vielen, vielen Dank schonmal!
Gruss,
Jan
Anzeige
AW: Daten-Bereich fuer Export aktivieren
21.03.2006 15:17:25
IngGi
Hallo Jan,
angenommen der Kopierbereich geht von Zeile 20 bis Zeile 23. Dann brauchst du ein Zeilenoffset von 3 [Suche.Offset(3, 6)], denn die letzte Zeile liegt 3 Zeilen nach der ersten Zeile. Dieser Zeilenoffset von 3 ergibt sich aus der letzten Zeile (23), minus der ersten Zeile (20). Die letzte Zeile ergibt sich aus "Suche.Offset(0, 6).End(xlDown).Row" und die erste Zeile eben aus "Suche.Row".
Gruß Ingolf
Klar! Subba und nochmals Dank! Erledigt!
21.03.2006 15:37:22
JMR
.

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige