Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
736to740
736to740
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

VBA Problem: Mit Variablen Zellen markieren

VBA Problem: Mit Variablen Zellen markieren
25.02.2006 15:14:16
Stefan
Hallo,
ich habe Folgendes Problem in VBA:
und zwar möchte ich aus einem drop down menü einen Eintrag wählen könnnen, worauf das makro in ein tabellenblatt springt und den ensprechenden eintrag findet. das klappt auch alles soweit. danach möchte ich alle zellen rechts von diesem im menü ausgewählten eintrag markieren, kopieren und auf einem neuen tabellenblatt einfügen.
dazu habe ich bspw. die Zelle b2 (also die 1. zelle rechts vom ausgewählten eintag) an eine variable übergeben. auch das hat noch geklappt. nun möchte ich aber ausgehend von der variable alle zellen markieren, die sich rechts von dieser befinden und nicht leer sind. kommt eine leerzeile, soll die markierung in der letzten zeile enden, wo sich noch ein eintrag befindet. daraufhin möchte ich diesen bereich kopieren und auf einem neuen Blatt einfügen.
wie mache ich das??
im voraus vielen dank für die hilfe
S.M.

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: VBA Problem: Mit Variablen Zellen markieren
25.02.2006 15:27:03
Ramses
Hallo
x ist deine Variable. Mit
y = cells(x,255).end(xltoleft).column
erhältst den letzten Eintrag in dieser Spalte.
Range(cells(i,1),Cells(y)).Copy Destination:=Worksheets("Ziel").Range("A" & n)
Kopierst du dann.
An kannst du genauso berechnen.
n = Worksheets("Ziel").cells(65536,1).end(xlUP).Row + 1
erhältst du die erste freie Zelle in Spalte A
Gruss Rainer
AW: VBA Problem: Mit Variablen Zellen markieren
25.02.2006 15:48:17
Stefan
Hallo Rainer,
vielen Dank für deine schnelle antwort. aber ich erhalte dennoch einen fehler an der stelle. hier mein code bislang
Option Explicit

Sub ReportEmpfängerAuswählen()
ReportGenerieren 0, True
End Sub


Sub ReportGenerieren(intEmpfänger As Integer, bolAuswahlZeigen As Boolean)
Dim strZelle As String
Dim intLänge As Integer
Dim strReports As String
Dim intAuswahl As Integer
Dim Y As Integer
Dim n As Variant
Dim i As Integer
If bolAuswahlZeigen Then
DialogSheets("D_Choose Report").Show
intEmpfänger = DialogSheets("D_Choose Report").ListBoxes("Liste").ListIndex
End If
Application.ScreenUpdating = False
Application.Calculation = xlManual
If intEmpfänger Then
Worksheets("Layout").Activate
Range("'Layout'!d" & intEmpfänger + 1).Activate
strReports = ActiveCell.Text
Y = Cells(strReports, 255).End(xlToLeft).Column
Range(Cells(i, 1), Cells(Y)).Copy Destination:=Worksheets("LAYOUT").Range("A" & n)
End If
End Sub

Ab Y = ........ erhalte ich den fehler.....wie kann ich alles rechts von "strReports" markieren und diesen bereich dann in Zelle C7 auf dem Blatt "Ziel" einfügen?
Bevor ich, falls es dann klappen sollte, nochmal fragen muss gleich ein hintergrund zum weiteren vorgehen: in den zu kopierenden zellen sollen sich verweise auf ein tabellenblatt befinden die aus der Tabelle herauskopiert, auf der Zieltabelle eingefügt und dort nach unten kopiert werden sollen. das ist dann in der Quelltabelle z.b. in der 1. Zelle rechts von "strReports" "HIER!C7" in der nächsten "HIER!D7" etc. Die möchte ich dann in der Tabelle "Ziel" einfügen, also "Hier!C7" in Zelle "Ziel!C7" und diese dann nach unten kopieren, so dass sie sich dynamisch fortschreibt (Also "HIer!C8";"Hier!CC9" etc).
Gruß Stefan
Anzeige
Ich versteh nur Bahnhof, ...
25.02.2006 15:53:34
Ramses
Hallo
Vor allem weil auch noch "DialogSheets" verwendet werden.
Das ist eigentlich ein Überbleibsel aus EXCEL 5.
Kannst du mal ein Beispiel hochladen '
Gruss Rainer
AW: Ich versteh nur Bahnhof, ...
25.02.2006 15:58:23
Stefan
Hallo Rainer,
das liegt daran, da ich hier ein altes Makro umbaue. an anderer Stelle hats mit dialogsheets auch funktioniert.
sorry für die konfuse beschreibung, daher nochmal:
ich möchte alle zellen rechts von der variablen markieren, dann kopieren und danach in der Zieltabelle einfügen. Dann dort nach untenkopieren. Da die kopierten zellen im Grunde genommen bezüge enthalten, sollen sich diese beim kopieren auf der Zieltabelle nach unten hin entsprechend anpassen, soll heissen aus "Hier!C7" wird darunter "Hier!C8" usw.
Anzeige
AW: Ich versteh nur Bahnhof, ...
25.02.2006 16:04:13
Ramses
Hallo
Sorry, aber du hast da ein Problem
strReports = ActiveCell.Text
Was steht in "strReports"?
Wenn dort "...HIER!D7..." steht, wie willst du dann auf die Zeile zugreifen ?
Du musst da schon den Namen der Tabelle extrahieren.
Schau dir dazu mal die Funktion "Instr" und "Left" an
Und dann muss es zumindest
Y = Worksheets("Ziel").Cells(Rest_von_strReports_Zeile, 255).End(xlToLeft).Column
Gruss Rainer
AW: Ich versteh nur Bahnhof, ...
25.02.2006 16:25:55
Stefan
Hallo,
momentan steht in tatsächlich "=Hier!D7" in der Variablen.
Die Quelltabelle ist momentan so aufgebaut:
B C D E
=Hier!D7 =HIER!E7 =Hier!F7
Wieso kann ich dies nicht herauskopieren und in der Zieltabelle Einfügen?
Die Markierung soll dann von Zelle B-D gehen, da sich in E ja kein Eintrag befindet!
wenn ich Beide komponenten Trennen würde, also:
B C D E F G H
= Hier!D7 = HIER!E7 = Hier!F7
müsste ich ja immer 2 zellen verketten, also b mit c, d mit e usw.
ich hab aber ehrlich gesagt keine ahnung, wie ich das machen soll, dass er immer genau 2 miteinander verkettet und dann die nächsten beiden nimmt und das auch noch variabel sein soll?!
Zieltabelle sollte dann wieder:
B C D
=Hier!D7 =Hier!E7 =Hier!F7
sein, da ich die einträge von "Hier" ja haben möchte.
Anzeige
Beispieltabelle hochladen...
25.02.2006 16:29:03
Ramses
Hallo
...oder wir diskutieren das noch ewig weiter.
SO wie du es machst, geht es nicht ;-)
Gruss Rainer
AW: Beispieltabelle hochladen...
25.02.2006 16:43:27
Stefan
Nun mit Beispieltabelle. ;-)
https://www.herber.de/bbs/user/31418.xls
Mit dem Drop-Down Menü wähle ich Benutzer X,Y oder Z aus!
Daraufhin springt das Makro auf der Tabelle „QUELL“ in Zelle B2,B3 oder B4 je nachdem, welche Benutzer gewählt wurde. Das funktioniert noch. Dann soll alles was sich in B nach rechts hin befindet kopiert werden und in Tabelle „ZIEL“ eingefügt werden. So möchte ich ermöglichen, dass ich die in „HIER“ befindliche Standardtabelle nach Benutzter individuell aufbauen kann!
Daher wollte ich einfach in „ZIEL“ die entsprechenden Verweise auf „HIER“ einfügen.
Oder hast du da eine sinnvollere Lösung?
Ich muss bzw. soll auf jeden Fall über die Quelltabelle gehen.
Ich hoffe, dass ichs nun verständlicher erläutern konnte….sorry und danke für die Geduld ;-))
Gruß Stefan
Anzeige
... und für was soll dieses Beispiel gut sein ?
25.02.2006 16:50:36
Ramses
Hallo
Wenn ich schreibe "Beispieltabelle" dann meine ich DEINE Datei, allenfalls mit anonymisierten Daten, aber grundsätzlich voll funktionsfähig :-)
In deiner Beispieldatei ist NICHTS von dem was du vorher beschrieben hast.
Weder ein DropDown noch ein Makro oder ein Dialogsheet.
Sorry,... da muss ich passen.
Gruss Rainer
AW: Beispieltabelle hochladen...
25.02.2006 17:24:23
Ramses
Hallo
Nach welcher Logik ist das aufgebaut ?
AW: Beispieltabelle hochladen...
25.02.2006 17:35:15
Stefan
ich verweise auf die jahresüberschriften, da ich dachte, wenn ich diese aus QUELL heauraskopiere, in ZIEL einfüge und dann dort nach unten kopiere es ne möglichkeit gibt, dass dann aus B2: B3,B4 etc durchs kopieren wird!!!
ich möchte die gewünschten spalten aus HIER benutzerindividuell in QUELL zur benutzerindividuellen Gestaltung hinterlegen. da ich die dann mit dem Makro in Ziel einfügen kann, dachte ich so einen benutzerindividuellen Ausschnitt von HIER generieren zu können.
Soll heisen: QUELL enthält Spaltendefinitionen, um Ausschnitte von HIER in ZIEL einfügen zu können.
vielleicht bin ich mit dem was ich programmiert habe bislang auch total auf dem holzweg, aber vom prinzip her solls so aussehen. Ich will es nämlich ermöglichen, dass ich keine anpassungen im programmtext vornehmen muss dadurch dass ich in QUELL neue spaltendefinitionen festlege!
Anzeige
Interessant, du hast soeben die Metadaten...
26.02.2006 04:45:53
Luc:-?
...entdeckt, Stefan.
An so etwas hat hier schon mal einer gearbeitet (ich vor Jahren auch mal - ist immer noch nicht fertig!). Der andere wollte aber keine VBA-Lösung, sondern hat sich für jeden xlLaien lesbare HTML-Seiten mit Metadaten gebastelt, auf die er dann zugreifen wollte. Hoffentlich ist das nicht eine Nummer zu groß...!
Gruß Luc :-?
PS: Übrigens beschäftigt sich auch die UNECE mit so etwas und die Fa www.SCOPELAND.de in Birkenwerder bei Berlin hat darauf ein modernes DB-Konzept aufgebaut.
... da gibt's ja nun nen neuen Thread oT
28.02.2006 12:54:57
schauan
... da gibt's ja nun nen neuen Thread oT

357 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige