Microsoft Excel

Herbers Excel/VBA-Archiv

Zellen aus Bereich nacheinander auf neuen Sheet


Betrifft: Zellen aus Bereich nacheinander auf neuen Sheet
von: Busch
Geschrieben am: 15.04.2019 18:41:44

Hallo!
Ich bin Anfänger was Excel VBA angeht und brauche eure Hilfe.
Ich haben einen Zellenbereich von L14:L21 und möchte die darin stehenden Werte auf ein anderen _ Sheet kopieren. Hierbei soll nur soviel kopiert werden wie in L14:L21 steht. Die Werte verändern sich nach jedem Kopiervorgang und es sind nicht immer alle Zellen ausgefüllt. Das Kopieren soll in eine bestimmte Spalte auf dem zweiten Sheet erfolgen und zwar immer untereinander sodass bei jedem Kopiervorgang die Werte untereinander eingetragen werden. Bisher werden die kopierten Daten nur ersetzt und nicht untereiander eingetragen. Ich kriege die Suche nach der freien Zelle nicht in mein Makro eingefügt. Kann mir jemand helfen? Bisher sieht es so aus.

Sub KopierenGewichtungen()
 Dim mySheet As Worksheet, myOtherSheet As Worksheet, myBook As Workbook 'Defintion des  _
Arbeitsblatts und der Arbeitsmappe
 Set myBook = Excel.ActiveWorkbook
 Set mySheet = myBook.Sheets("Startseite")
 Set myOtherSheet = myBook.Sheets("Gewichtungen")

 Dim i As Integer, j As Integer 'Definition der Laufvariablen als Integer

 j = 2  ' Variable die angibt, in welcher Zeile wir auf dem Arbeitsblatt "Gewichtungen" starten
 For i = 14 To 21  ' Start des Loops welcher von 14 bis 21 zählt
    If mySheet.Cells(i, 12).Value <> "" Then 'für jede Ziffer, prüfen ob Zelle leer.
       myOtherSheet.Cells(j, 4).Value = mySheet.Cells(i, 12).Value 'Kopieren der Werte zur  _
Zelle auf Gewichtungen in der Zeile gemäß "j" Variable
    Else 'Wenn Zelle leer dann
       myOtherSheet.Cells(j, 4).Value = "" 'Wenn Zelle leer dann ""
    End If
       j = j + 1
 Next i 'Ende des Loops und zum nächsten i
 
End Sub

  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: cysu11
Geschrieben am: 15.04.2019 18:51:29

Hi Busch,

ungetestet:

Sub KopierenGewichtungen()
 Dim mySheet As Worksheet, myOtherSheet As Worksheet, myBook As Workbook 'Defintion des _
Arbeitsblatts und der Arbeitsmappe
 Set myBook = Excel.ActiveWorkbook
 Set mySheet = myBook.Sheets("Startseite")
 Set myOtherSheet = myBook.Sheets("Gewichtungen")

 Dim i As Integer, j As Integer 'Definition der Laufvariablen als Integer

 'j = 2  ' Variable die angibt, in welcher Zeile wir auf dem Arbeitsblatt "Gewichtungen"  _
starten
 For i = 14 To 21  ' Start des Loops welcher von 14 bis 21 z?hlt
    If mySheet.Cells(i, 12).Value <> "" Then 'f?r jede Ziffer, pr?fen ob Zelle leer.
       myOtherSheet.Cells(Rows.Count + 1, 4).Value = mySheet.Cells(i, 12).Value 'Kopieren der  _
Werte zur _
Zelle auf Gewichtungen in der Zeile gem?? "j" Variable
    Else 'Wenn Zelle leer dann
       myOtherSheet.Cells(Rows.Count + 1, 4).Value = "" 'Wenn Zelle leer dann ""
    End If
       'j = j + 1
 Next i 'Ende des Loops und zum n?chsten i
 
End Sub
LG
Alexandra


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: Busch
Geschrieben am: 15.04.2019 18:58:55

Hallo Alexandra,
vielen Dank erstmal für deine Hilfe. Leider bekomme ich jetzt einen Laufzeitfehler.
Hast du eine andere Idee?
Grüße Felix


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: cysu11
Geschrieben am: 15.04.2019 19:00:18

Hi Felix,

lade bitte deine Beispieldate hoch, dann gucken wir mal!

LG
Alexandra


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: onur
Geschrieben am: 15.04.2019 19:03:33

Und gewöhne dir bitte ab, zu schreiben: "Leider bekomme ich jetzt einen Laufzeitfehler." - Ohne konkrete Angaben (WO GENAU und WELCHEN) bringt diese Aussage so gut wie gar nix.


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: Busch
Geschrieben am: 15.04.2019 19:11:01

http://www.herber.de/bbs/user/129166.xlsm

Alles klar. Sorry.


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: cysu11
Geschrieben am: 15.04.2019 19:22:18

Hi Felix,

dann so:

Option Explicit
Sub KopierenGewichtungen()
Dim lz As Long
   Dim mySheet As Worksheet, myOtherSheet As Worksheet, myBook As Workbook 'Defintion des _
  Arbeitsblatts und der Arbeitsmappe
   Set myBook = Excel.ActiveWorkbook
   Set mySheet = myBook.Sheets("Startseite")
   Set myOtherSheet = myBook.Sheets("Gewichtungen")
  
   Dim i As Integer, j As Integer 'Definition der Laufvariablen als Integer
  
   'j = 2  ' Variable die angibt, in welcher Zeile wir auf dem Arbeitsblatt "Gewichtungen" _
  starten
   For i = 14 To 21  ' Start des Loops welcher von 14 bis 21 z?hlt
      If mySheet.Cells(i, 12).Value <> "" Then 'f?r jede Ziffer, pr?fen ob Zelle leer.
         lz = myOtherSheet.Cells(Rows.Count, 4).End(xlUp).Row + 1
         myOtherSheet.Cells(lz, 4).Value = mySheet.Cells(i, 12).Value 'Kopieren der _
  Werte zur _
  Zelle auf Gewichtungen in der Zeile gem?? "j" Variable
'      Else 'Wenn Zelle leer dann
'         myOtherSheet.Cells(lz, 4).Value = "" 'Wenn Zelle leer dann ""
      
      End If
         'j = j + 1
   Next i 'Ende des Loops und zum n?chsten i
   
  End Sub

LG
Alexandra


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: Busch
Geschrieben am: 15.04.2019 19:58:14

Danke Alexandra.

Leider kopiert er wenn bspw. werte eingetragen sind nur 2 rüber. Den letzten Wert der Auswahl ignoriert er. Das untereinander einfügen klappt aber wunderbar


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: Busch
Geschrieben am: 15.04.2019 20:09:45

Fällt dir da was aus? Woran das liegen könnte? Bei 4 Einträgen kopiert er 3. Bei 3 2 usw. Dann hätte ich es nämlich endlich.... Danke!


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: cysu11
Geschrieben am: 15.04.2019 20:11:23

Hi,

es läuft doch wunderbar:

http://www.herber.de/bbs/user/129169.xlsm

Hast du was geändert?

LG
Alexandra


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: Busch
Geschrieben am: 15.04.2019 20:20:17

Oh Gott. Ich bin ein Trottel. Ich hab gedacht die Kommentierung einiger Dinge wäre durch das Format hier drin gekommen. Aber das war so gewollt. Ich bitte vielmals um Entschuldigung. Es klappt wunderbar.

Eine Frage wäre mir dann doch noch gekommen.

Das ganze soll so aussehen das ich insgesamt in 4 Spalten etwas kopieren lasse. Hierbei soll der gerade beschriebene Vorgang jedoch die Basis dafür bieten wo beim nächsten Kopieren in den anderen Spalten eingefügt werden soll.

Also bspw.: Ich habe hier 5 Werte in die 4. Spalte eingefüllt. In der 1. Spalte aber nur einen. Beim nächsten Kopieren soll in Spalte 1 der Wert aber in die Zeile seiner Spalte eingefüllt werden wo in Spalte 4 die nächste Zeile frei wird. Heißt nächste FreieZeile in 4 soll auch Basis für Zeile in Spalte 1 sein.

Ist das sehr komplex oder leicht machbar?

Trotzdem schonmal vielen Dank!


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: cysu11
Geschrieben am: 15.04.2019 22:59:35

Hi,

verstehe ich nicht ganz, lade nochmals deine Datei hoch mit dem Wunschergebnissen!

LG
Alexandra


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: Busch
Geschrieben am: 16.04.2019 10:57:44

Hi Alexandra,

ich habe mal die zweite so angepasst wie es nach dem kopieren aussehen soll. Die 2 linken Spalten sollen sich eben an dem letzten Wert der 2 Rechten orientieren, weil die immer die maximale Kopiermenge definieren...
Danke! Grüße

http://www.herber.de/bbs/user/129181.xlsm


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: cysu11
Geschrieben am: 16.04.2019 15:53:33

Hi,

also ich habe mir das jetzt 10x durchgelesen und ich verstehe einfach nicht was du willst! :)
Lade nochmals deine Datei hoch und markiere farblich was von wo nach wo kopiert werden soll und schreibe Kommentare dazu, damit das verständlich ist was du willst!

LG
Alexandra


  

Betrifft: AW: Zellen aus Bereich nacheinander auf neuen Sheet
von: cysu11
Geschrieben am: 16.04.2019 15:58:36

Hi,

also ich habe mir das jetzt 10x durchgelesen und ich verstehe einfach nicht was du willst! :)
Lade nochmals deine Datei hoch und markiere farblich was von wo nach wo kopiert werden soll und schreibe Kommentare dazu, damit das verständlich ist was du willst!

LG
Alexandra