Zellen kopieren durch VBA
#11
Zitat:Schade das keiner helfen kann.
Mal etwas grundsätzliches: das ist hier kostenlose Hilfe. Hilfe für Dich. Kostenlos heißt: man darf schon einmal etwas warten - insbesondere am Wochenende.
Dein "Schade" ist ein Jammern - sorry, aber so ist es.
Wenn dir das alles nicht schnell genug geht, beauftrage jemanden damit.

Just my 2 cents.
Antworten Top
#12
Wink 
Hallo ralf,
das ist genau das was ich wollte, hätte es vielleicht besser beschreiben sollen  19
Drei Fragen habe ich allerdings noch.
Warum kopiert Excel das erste mal, eine Leerzeile mehr, ist jetzt nicht schlimm, liegt es daran, das die oberen 5 Zeilen Gruppiert sind?

Zweitens, wie würde ich noch die Zeilen von "H9" bis "S9" mit reinbekommen?

Und drittens, wenn ich die Formel: =SVERWEIS($F$11;Artikel!$C$4:$D$15;2;0)*Tabelle4[@Spalte3] eingebe
wird mir ein Fehler ausgegeben: #WERT!
was auf die Spalte 3 zurückzuführen ist. Wie ist es möglich, *Anzahl (E9) zu berechnen?

Ansonsten VIELEN DANK
Gruß Phoeni
Antworten Top
#13
Ich erkläre den Code

currentregion  erfasst den abgegrenzten Bereich um B9 ohne Leerzeile . d.h. Es muß rundherum  eine Zelle frei sein um den Bereich von VBA erkennen zu lassen.
So habe ich die Vorgabe verstanden. Also auch nach unten eine freie Zeile. 
.Copy ist selbsterklärend 
Cells(.Parent.Rows.Count, 2).End(xlUp)  .Parent holt sich das übergeordnete Objekt(das Arbeitsblatt) 
und von dort aus die letzte belegte Zeile aus Spalte 2 
Offset(2)  geht 2 Zeilen tiefer und bildet den Einfügepunkt inclusive eine freie Zeile. Kanst du gerne anpassen.

du hast F11 in der Verweisformel auch fixiert. Warum? 

Zitat:Zweitens, wie würde ich noch die Zeilen von "H9" bis "S9" mit reinbekommen? 

siehe currentregion, also du mußt die Zellen einfach nur füllen

Tabelle4[@Spalte3]  soll bitte was sein?  Es gibt keine Intelligente Tabelle mit Namen Tabelle4 in der Datei.
Antworten Top
#14
Hallo,

leider beschäftigst du dich anscheinend nicht mit den Formel oder Inhalten der Makros.
Nur übernehmen hilft eben nicht immer weiter.
=SVERWEIS($F9;Artikel!$C$2:$D$13;2;0)*E9

Das $-Zeichen hat eine bestimmte Bedeutung (nachschlagen). Wenn du das $-Zeichen vor der Zeile lässt bleibt der Bezug immer zu der Zelle F9.  Das willst du aber nicht, weil da ja immer wieder andere Werte stehen können/werden. 

Wenn die Anzahl mit denen du die Werte aus der Spalte G multiplizieren möchtest, nicht in der Zelle E9 stehen, musst du schon die richtige Bezeichnung für die Multiplikation der zu suchenden Zelle eingeben, aber das hat dir ja ralf schon geschrieben.

Sich mit den Hilfen zu beschäftigen, ist auch wieder Hilfe zur Selbsthilfe - und nur so lernt man etwas.
Und - es kann genauso viel Spaß machen wie das eigentliche Spielen.

Gruß Rudi
Antworten Top
#15
Hallo Leute,
ich komme erst jetzt dazu, Euch erstmal Danke zu sagen!!!
Ich habe doch so einiges  gelernt, wie man solche Datei richtig erstellt, zumindest sollte man, sowas mal skizieren wie man sich etwas vorstellt und 
am Ende aussehen/ funktionieren soll. 
Habe während der Zeit in meiner Tabelle, sehr viele Fehler gefunden (ich will dies das und jenes) und am Ende bemerkt das vieles von mir falsch oder unzureichend erklärt/ beschrieben wurde.

Nochmals Danke
Gruß Phoeni
Antworten Top
#16
Hallo Leute, 
ich greife das Thema noch mal auf, weil ich einen Fehler bei der Erklärung geliefert habe.

Wenn ich den Button betätige, werden die Zeilen wie gewollt kopiert und eingefügt alles ok, 
allerdings habe ich nicht bedacht, dass ich die verschiedenen Daten gruppiere, jetzt muss ich bei dem letzten Datum die Gruppierung öffnen,
damit die zu kopierenden Zellen eingefügt werden können.

Ist es änderbar, dass ich das letzte Datum/ Gruppierung nicht öffnen muss?
Und ist es möglich, dass die aktive Zelle nicht "B8" sondern die erste Zelle der neu eingefügten Zellen z.B. "B29" mit tagesaktuellen Datum sein wird?
Danke Gruß Phoeni


Angehängte Dateien
.xlsm   Spieldatei2 (4).xlsm (Größe: 69,05 KB / Downloads: 4)
Antworten Top
#17
Na sind wir jetzt in der Sonderwunschecke  angekommen.

Code:
Sub tabcopy()
Dim rng  As Range
With Range("B9").CurrentRegion
    .Parent.Outline.ShowLevels RowLevels:=2
    Set rng = Cells(.Parent.Rows.Count, 2).End(xlUp).Offset(2)
    .Copy rng
    rng.Select
    .Parent.Outline.ShowLevels 1
    With rng.CurrentRegion
      .EntireRow.Offset(1).Resize(.Rows.Count - 1).Rows.Group
    End With
End With
Set rng = Nothing
End Sub
Antworten Top
#18
Hallo ralf, 
nein- nennen es einfach Dummheit  19
und wie ich gestern schon geschrieben habe, unzureichende Vorbereitung.
DANKE!
Gruß Phoeni
Antworten Top
#19
Im anderen Forum weiß übrigens niemand dass es gelöst wurde und wo...
Antworten Top
#20
Edit: vergesst meine letzte Antwort Wink
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 3 Gast/Gäste