Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

Ich würde in Tabelle 3 mit =WENN($A$1<>"";A1) arbeiten, und den letzten Zellenwert auf den jeweiligen in Tab 3 ändern. Prämisse, Tab 1 bzw 2 A1 ist deine Bedingungszelle. Abfrage dann mit WENN UND für Tab 1 und 2 als Bedingung. Sollte so gehen, wenn auch wahrscheinlich nicht die eleganteste Lösung.

Mit den Aktionen Zeile verschieben und Zeile kopieren können Sie Zeilen automatisch in ein anderes Blatt verschieben oder kopieren, wenn bestimmte Bedingungen erfüllt sind. Ein Beispiel:

  1. Eine Beschaffungsanforderung wird über ein Formular in Ihr Blatt übertragen.
  2. Nachdem Sie alle Angaben in der Anforderung ergänzt haben, weisen Sie diese Anforderung Ihrem IT-Team zu.
  3. Der IT-Leiter bewilligt die Anforderung.
  4. Die Zeile mit der Beschaffungsanforderung wird automatisch für weitere Aktionen in ein aktives IT-Projektblatt verschoben.

Um einen Workflow zu erstellen, der Zeilen automatisch verschiebt oder kopiert, müssen sowohl Sie als auch der Inhaber des Quellblatts über Inhaber- oder Administratorrechte für das Zielblatt verfügen.


Eine Aktion zum automatisierten Verschieben oder Kopieren von Zeilen einrichten

Im Quellblatt:

  1. Erstellen Sie einen neuen Workflow und richten Sie die Auslöser und Bedingungen für den Workflow ein.
  2. Wählen Sie im Feld Aktion auswählen die Option Zeilen verschieben oder Zeilen kopieren.
  3. Wählen Sie unter Zeilen verschieben oder Zeilen kopieren die Option Blatt auswählen.
  4. Wählen Sie im Dialogfeld Blatt auswählen Ihr Zielblatt aus und wählen Sie dann OK.

Um unendliche Genehmigungsschleifen zu vermeiden, lösen Zellen, die blattübergreifende Formeln oder Zellverknüpfungen enthalten, keine Automatisierung aus, die das Blatt automatisch ändert (Zeile verschieben, Zeile kopieren, Zeile sperren, Zeile entsperren oder Genehmigungsanforderung). Um dies zu umgehen, ziehen Sie die Verwendung der zeitbasierten Automatisierung oder regelmäßiger Workflows in Betracht.


Dinge, die Sie über das Verschieben und das Kopieren von Zeilen zwischen Blättern wissen sollten

Beachten Sie folgende Aspekte, wenn Sie Zeilen zwischen Blättern verschieben oder kopieren:

  • Wenn Sie Zeilen zwischen Blättern verschieben:
    • Die verschobenen Zeilen werden aus dem Quellblatt gelöscht und zum Zielblatt hinzugefügt und
    • Der Verlauf für Zellen in den Zeilen ist dennoch verfügbar.
  • Wenn Sie Zeilen zwischen Blättern kopieren:
    • Die kopierten Zeilen werden im Quellblatt gespeichert und zum Zielblatt hinzugefügt und
    • Der Zellenverlauf wird nicht im Zielblatt gespeichert.
  • Sie finden verschobene oder kopierte Zellen unten im Zielblatt und können sie auswählen und an einen anderen Speicherort ziehen.
  • Eventuell verfügbare Anlagen oder Kommentare zu einer Zeile werden automatisch in das Zielblatt verschoben.
  • Sämtliche Formeln in der Zeile werden im Zielblatt durch statische Werte ersetzt.
  • Wenn das Quellblatt Spalten enthält, die das Zielblatt nicht aufweist, werden diese Spalten im Zielblatt automatisch erstellt, wenn eine Zeile verschoben oder kopiert wird.

Wenn Sie Zeilen mit System- oder Baseline-Spalten verschieben oder kopieren

  • Wenn eine Spalte im Zielblatt existiert, jedoch nicht im Quellblatt, dann weist die Spalte Erstellt von das Datum/die Uhrzeit des Verschiebens oder Kopierens der Zeile auf.
  • Die Spalte Erstellt von zeigt den Benutzer, der die Zeile verschoben oder kopiert hat. Wenn die Zeile durch eine Automatisierung verschoben oder kopiert wurde, wird [email protected] angezeigt.
  • Wenn eine Spalte sowohl im Ziel- als auch im Quellblatt vorliegt, dann wird der Wert aus dem Quellblatt in das Zielblatt übernommen. Anders als bei anderen Spaltentypen müssen die Spaltennamen nicht übereinstimmen.

Wenn eine Systemspalte oder eine Baseline-Spalte einen Namen aufweist, der mit einer Spalte mit einem anderen Spaltentyp übereinstimmt (Dropdown, Text/Zahl usw.), dann wird möglicherweise eine der folgenden Fehlermeldungen ausgegeben:

  • Zeilen können nicht zum Zielblatt hinzugefügt werden, da eine Spalte denselben Namen aufweist wie eine Systemspalte im Quellblatt.
  • Zeilen können nicht zum Zielblatt hinzugefügt werden, da eine Systemspalte denselben Namen aufweist wie eine Spalte im Quellblatt.

Um dieses Problem zu lösen, können Sie entweder eine der Spalten umbenennen oder den Spaltentyp ändern, sodass er mit dem Quellblatt übereinstimmt.

Ich habe eine Tabelle in "A" steht der Name in "P" der Kurs und in "Y" ist die Bedingung "ja" oder "nein".

Das war das einzige das ich gefunden habe was auch funktionierte. Allerdings Kopiert es die komplette Zeile.

Sub BedingteKopieZeilen()

Dim Zeile As Long

Dim ZeileMax As Long

Dim n As Long

With Tabelle2

ZeileMax = .UsedRange.Rows.Count

n = 7

For Zeile = 3 To ZeileMax

If .Cells(Zeile, 25).Value = "Kurtaxe" Then

.Rows(Zeile).Copy Destination:=Tabelle10.Rows(n)

n = n + 1

End If

Next Zeile

End With

End Sub

Ich bedanke mich für eure Hilfe

Bernd

...komplette Frage anzeigen

3 Antworten

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

Oubyi, UserMod Light

Usermod

Community-Experte

Microsoft Excel

19.05.2019, 21:52

Ich habe das jetzt mal nicht getestet, aber versuche es mal mit:

Sub BedingteKopieZeilen()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
With Tabelle2
    ZeileMax = .UsedRange.Rows.Count
    n = 7
    For Zeile = 3 To ZeileMax
        If .Cells(Zeile, 25).Value = "Kurtaxe" Then
            .Cells(Zeile, 1).Copy Destination:=Tabelle10.Cells(n, 1)
            .Cells(Zeile, 16).Copy Destination:=Tabelle10.Cells(n, 2)
            n = n + 1
        End If
    Next Zeile
End With
End Sub

Und nutze für Code, den Du hier einfügst bitte die Option "Quelltext".

Woher ich das weiß:Beruf – IT-Administrator (i.R.)

5 Kommentare 5

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

Bernd843 

Fragesteller

 20.05.2019, 17:55

Hallo Danke für die fertige Formol. Leider habe ich in spalte 16 eine Formel stehen und vermute, das es deswegen nicht geht es zeigt mir die Namen an aber den Betrag nicht, da stehr #Bezug. Jetzt weis ich nicht kann man da mit VBA den Betrag anzeigen lassen oder mit einem SVerweis?. Trotz alledem vielen Herzlichen Dank. ich habe mir schon seit einer Woche den Kopf zerbrochen und im Internet nach einer Lösung gesucht. Danke

Bernd

0 4

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

Oubyi, UserMod Light 20.05.2019, 21:16

@Bernd843

Teste mal:

Sub BedingteKopieZeilen()
Dim Zeile As Long
Dim ZeileMax As Long
Dim n As Long
With Sheets("Tabelle2")
  ZeileMax = .UsedRange.Rows.Count
  n = 7
  For Zeile = 3 To ZeileMax
    If .Cells(Zeile, 25).Value = "Kurtaxe" Then
      .Cells(Zeile, 1).Copy Destination:=Sheets("Tabelle10").Cells(n, 1)
      .Cells(Zeile, 16).Copy
      Sheets("Tabelle10").Cells(n, 2).PasteSpecial Paste:=xlPasteValues
      n = n + 1
    End If
  Next Zeile
End With
End Sub

SVERWEIS wäre natürlich auch eine Möglichkeit.

0

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

Bernd843 

Fragesteller

 21.05.2019, 18:40

@Oubyi, UserMod Light

Hallo,

Dein Code hat mir Super weiter geholfen Viielen Viiielen Dank nd es funktioniert jetzt alles so wie es soll. Ich finde es Super das das es solche Leute Wie euch gibt die anderen helfen. Danke

1

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

Oubyi, UserMod Light 21.05.2019, 20:11

@Bernd843

🌺 Danke für die Blumen 😊

0

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

Bernd843 

Fragesteller

 22.05.2019, 20:50

@Oubyi, UserMod Light

immerwieder gern.

1

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

PWolff

Community-Experte

Computer

19.05.2019, 20:59

Statt Tabelle.Rows(Zeilennummer) nimmst du ein anderes Range-Objekt.

Bei einer einzelnen Zelle

Tabelle.Cells(Zeilennummer, Spaltennummer)

bei mehreren Zellen

Tabelle.Range(Tabelle.Cells(Zeilennummer, Startspaltennummer), Tabelle.Cells(Zeilennummer, Endspaltennummer))

2 Kommentare 2

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

Bernd843 

Fragesteller

 19.05.2019, 21:18

Hallo PWolf,

es tut mir leid, aber ich verstehe es nicht.

ich habe das "Tabelle.Cells(Zeilennummer, Spaltennummer)" jetzt versucht und bekomme die erste Zelle in jede Spalte kopiert

.Cells(Zeile, 1).Copy Destination:=Tabelle10.Rows(n)

0 1

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

LtLTSmash 19.05.2019, 21:47

@Bernd843

in der 2. Zeile musst du die "Rows" auch gegen die Cells(n,1) tauschen.

1

Excel zellen in anderes tabellenblatt kopieren wenn bedingung erfüllt formel

LtLTSmash

Topnutzer im Thema Microsoft Excel

19.05.2019, 20:53

was möchtest du denn kopieren? nur eine Zelle? Und soll die Formatierung mit kopiert werden oder nur ein Wert übertragen werden?

Weitere Antworten zeigen

Ähnliche Fragen

Excel VBA: Bild einfügen, in Variable speichern, Größe ändern, ausrichten?

Ich habe jetzt unzähle Varianten durch. Ich baue ein Bestellsystem für zwei verschieden Shops. Heißt, bei jedem eingetragenen Artikel in die Bestellliste soll am Ende der Listen-Zeile das jeweilige Logo eingefügt werden, kleiner als das Originalbild, kleiner als die Zeile selbst, für die Übersichtlichkeit in der Liste, mittig ausgerichtet.

Ich habe von Pictures.Insert zu Shapes.AddPicture gewechselt, da ich gelesen habe, dass dies die korrektere Form sei. Jetzt bekomme ich eine Fehlermeldung bei der Festlegung eines Rahmens.
Kann mir jemand meine Fehler aufzeigen? Folgende Fragen stellen sich mir:
- Welchen Variablen-Typ brauche ich für ein eingefügtes Bild?
- Wie kann ich diese Variable dann verwenden, um Größe, Position und Rahmen festzulegen?

Danke sehr!!!!!!

Sub LogoEinfügen(Shop As String, Zeile As Integer, Spalte As Integer)

Dim Breite As Integer
Dim Höhe As Integer
Dim strDatei As String
Dim Logo As Object
Dim ShopFarbe As Long, Rot As Long, Blau As Long

' Farben für die zwei Shops festlegen
Rot = 26316
Blau = 13395456

' Dateinamen je nach Shop auswählen und Shop-Farbe einstellen
If Shop = "ZL" Then
  strDatei = "D:\logo1.jpg"
  ShopFarbe = Rot
End If

If Shop = "AQ" Then
  strDatei = "D:\logo2.jpg"
  ShopFarbe = Blau
End If

' Bild einfügen

' Ort festlegen
Dim rg As Range
Set rg = ActiveSheet.Cells(Zeile, Spalte)

' Und einfügen
Set Logo = ActiveSheet.Shapes.AddPicture(strDatei, msoTrue, msoTrue, rg.Left, rg.Top, -1, -1)
Set rg = Nothing

With Logo
      .LockAspectRatio = msoFalse              ' Verzerrung egal
      .Height = Rows(Zeile).RowHeight - 4      ' kleiner als Zeile
      .Width = Columns(Spalte).Width - 4       ' schmaler als Spalte
      .Top = Cells(Zeile, Spalte).Top + (Cells(Zeile, Spalte).Height - Logo.Height) / 2         ' mittig
      .Left = Cells(Zeile, Spalte).Left + (Cells(Zeile, Spalte).Width - Logo.Width) / 2          ' mittig
  End With
  
  ' Rahmen ums Bild, in der Farbe des Shops
  With Logo.ShapeRange.Line
    .Visible = msoTrue
    .ForeColor.RGB = ShopFarbe
    .Weight = 1.5
    .ForeColor.TintAndShade = 0
  .ForeColor.Brightness = 0
End With

Set Logo = Nothing

' Zeilenhöhe anpassen
' Rows(Zeile).RowHeight = Logo.Height
 
End Sub

...zur Frage

Doppelte Werte suchen mit zusätzliche Bedingung dann eins löschen?

Hallo zusammen, ich hoffe dass jemand helfen kann weil ich weiß nicht weiter, danke.

Ich habe folgenden Code zum Suchen der Doppeltwerten in Spalte B und dann Löschung der Zeile:

Sub DoppelteZeilenLoeschen()

Dim letzteZeile As Long

Dim Zeile As Long

letzteZeile = Range("B" & Rows.Count).End(xlUp).Row

For Zeile = letzteZeile To 1 Step -1

 If WorksheetFunction.CountIf(Range("B1:B" & Zeile), Range("B" & Zeile)) > 1 Then

  Rows(Zeile).EntireRow.Delete

 End If

Next

End Sub

Jetzt meine Frage:

Was ich kann ich ergänzen, dass eine zweite Bedingung hier abgefragt wird vor der Löschung, also wenn Spalte "B" doppelwert hat dann Spalte "J" vergleichen, wenn Ergebnis der Spalte "J" gleich ist dann Zeile löschen, ansonsten weiter zählen.

Ein Bsp.

Spalte B Spalte J

  1. ABCD 1234
  2. ABCD 1234
  3. ABCD 4567

Hier sollten nur Zeile2 gelöscht werden.

Vielen Dank im Voraus

...zur Frage

Maximale Pfadlänge in Windows und VBA umgehen?

Hallo,

ich benutze folgenden Code in Excel VBA um mir Dateipfad und Dateiname eines Ordners und allen darin enthaltenen Unterordnern aufzulisten.
(Ihr könnt es testen, den Code einfach in ein Modul kopieren, "MainList" ausführen und einen Ordner eurer Wahl auswählen)

Ich habe jetzt das Problem, dass dieser Code alle Dateien überspringt, deren Pfadlänge über 255 Zeichen lang ist. Einige Dateien überschreiten nämlich die 255 Zeichen mit dem angehängten Dateinamen.
Sie liegen aber dennoch ab. Nur liest VBA diese nicht aus. Kann man da was dran machen?

Sub MainList()
'Updateby Extendoffice
Set Folder = Application.FileDialog(msoFileDialogFolderPicker)
If Folder.Show <> -1 Then Exit Sub
xDir = Folder.SelectedItems(1)
Call ListFilesInFolder(xDir, True)
End Sub

Sub ListFilesInFolder(ByVal xFolderName As String, ByVal xIsSubfolders As Boolean)
Dim xFileSystemObject As Object
Dim xFolder As Object
Dim xSubFolder As Object
Dim xFile As Object
Dim rowIndex As Long
Set xFileSystemObject = CreateObject("Scripting.FileSystemObject")
Set xFolder = xFileSystemObject.GetFolder(xFolderName)
rowIndex = Application.ActiveSheet.Range("A65536").End(xlUp).Row + 1
For Each xFile In xFolder.Files
  Application.ActiveSheet.Cells(rowIndex, 1).Formula = xFile.Path
  Application.ActiveSheet.Cells(rowIndex, 2).Formula = xFile.Name
  rowIndex = rowIndex + 1
Next xFile
If xIsSubfolders Then
  For Each xSubFolder In xFolder.SubFolders
    ListFilesInFolder xSubFolder.Path, True
  Next xSubFolder
End If
Set xFile = Nothing
Set xFolder = Nothing
Set xFileSystemObject = Nothing
End Sub

Function GetFileOwner(ByVal xPath As String, ByVal xName As String)
Dim xFolder As Object
Dim xFolderItem As Object
Dim xShell As Object
xName = StrConv(xName, vbUnicode)
xPath = StrConv(xPath, vbUnicode)
Set xShell = CreateObject("Shell.Application")
Set xFolder = xShell.Namespace(StrConv(xPath, vbFromUnicode))
If Not xFolder Is Nothing Then
  Set xFolderItem = xFolder.ParseName(StrConv(xName, vbFromUnicode))
End If
If Not xFolderItem Is Nothing Then
  GetFileOwner = xFolder.GetDetailsOf(xFolderItem, 8)
Else
  GetFileOwner = ""
End If
Set xShell = Nothing
Set xFolder = Nothing
Set xFolderItem = Nothing
End Function

...zur Frage

An Bedingungen gebundenes ausblenden von Zeilen?

Ich habe ein Problem, welches ich alleine nicht schaffe zu lösen.

Ich habe eine Exceltabelle mit einem Button "Closed ausblenden".
Bisher funktioniert es soweit, dass er alle in Spalte N "Closed" ausblendet.

Code ist bis jetzt so:

Private Sub ToggleButton4_Click()  
 If Me.ToggleButton4.Value = True Then
Dim Liste As Range
Dim lngCriteriaCount As Long
Dim arrCriteria() As String
Dim oLO As ListObject
Application.EnableEvents = True
For r = 3 To ActiveSheet.UsedRange.Rows.Count
     If InStr(Cells(r, 14).Value, "CLOSED") Then
      Rows(r).RowHeight = 0
      End If
      Next
Me.ToggleButton4.Caption = "'CLOSED' ausgeblendet"
 Else
  
For l = 3 To ActiveSheet.UsedRange.Rows.Count
     If InStr(Cells(l, 14).Value, "CLOSED") Then
      Rows(l).RowHeight = 12
      End If
      Next
  Me.ToggleButton4.Caption = "'closed' ausblenden"
 End If
  
End Sub

Nun soll es erweitert werden:
Es soll nicht nur die Zeile sondern auch alle nachfolgenden Zeilen ausgeblendet werden - bis das Wort "Topic" oder "Topic ll" erreicht wird.

In diesem Beispiel also das gelb markierte mit ausblenden.

Kann mir jemand helfen?

...zur Frage

VBA CODE Zellen nach bestimmten Textinhalt suchen und Zeile Färben?

Hallo, kann mir bitte jemanden mit dem Code behilflich sein?

Dieser Code sucht die Zellen in Spalte"A" nach bestimmten Textinhalt ab und bei Treffer löscht er die zughörige gesamte Zeile. Meine Frage: kann man diesen Code so ändern, dass anstatt die gefundene Zeile zu löschen nur mit einer Farbe z.B. Orange (44) färbt? Vielen Dank im Voraus.

Sub zeilenloeschen()
  Dim i As Long
  Dim letzteZeile As Long
  Dim suchBereich As Range
  Dim gefunden As Range
  Dim ersterTreffer As String
  Dim suchWert As String
  suchWert = "1" 'hier kommt dein Suchwert rein
  
  With ThisWorkbook.Sheets("Sheet4")
    letzteZeile = .Range("A" & Rows.Count).End(xlUp).Row
    Set suchBereich = .Range("A1:A" & letzteZeile)
    Set gefunden = suchBereich.Find(What:=suchWert, LookAt:=xlPart)
    If Not gefunden Is Nothing Then
      ersterTreffer = gefunden.Address
      Do
        gefunden.Activate
        ActiveCell.EntireRow.Delete shift:=xlUp
        Set gefunden = suchBereich.Find(What:=suchWert, LookAt:=xlPart)
      Loop While Not gefunden Is Nothing
    End If
  End With
End Sub

...zur Frage

Hallo, ich möchte in einer Excel Datei per vba code bis zur ersten leeren zeile gehen, wie tue ich das?

 

ich möchte zur ersten leeren Zeile gehen und dann den rest markieren und löschen, also den kompletten Bereich ab da? BSp. A10 ist leer, dann möchte ich ab A10:z10 und abwärts alles markieren und löschen

Wie??

 

Sub FIND_EMPTY_CELL()
   
    Dim zeil As Integer
    Dim z As Integer
    Dim leerAbWo As Long
   
    zeil = ActiveSheet.UsedRange.Rows.Count 'letzte ausgefüllte Zeile
   
    For z = 8 To zeil

            If Cells(z, 1) = "" Then
                'leere Zelle gefunden
                leerAbWo = Cells(z, 1).Select 'gefundene Zelle selektieren
                'jetzt ab da an bis AA markieren und rest löschen!!!
                MsgBox leerAbWo
                Exit Sub
            End If
    Next z
End Sub

...zur Frage

Name + User?

Hallo,

was müsste ich hier anpassen? Ich komme mit der Fehler Meldung nicht zurecht.

Private Declare 36 GetUserName Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long
Private Function GetNTUserA() As String
  
 Dim sBuffer As String
 Dim LSize As Long
 Dim user As String
  
 sBuffer = Space$(255)
 LSize = Len(sBuffer)
  
 Call GetUserName(sBuffer, LSize)
  
 If LSize > 0 Then
  user = Left$(sBuffer, LSize - 1)
 Else
  user = vbNullString
 End If
  
 GetNTUserA = user
  
End Function
Private Sub Worksheet_Change(ByVal Target As Range)
   
    If Target.Column = 6 Then
    Target.Offset(0, 11).Value = Date
  End If
      
    If Target.Column = 6 Then
    Target.Offset(0, 10).Value = GetNTUserA
  End If

End Sub

...zur Frage

Excel - Button zur zum Einfügen einer neuen Zeile unterhalb eines Tabellenbereichs?

Hallo zusammen,

die letzten 4h habe ich - leider erfolglos - versucht, eine Lösung für mein Problem zu finden (Google hasst mich jetzt ;-) ): ich möchte am Ende einer Tabelle eine neue Zeile einfügen, inkl. der in den vorherigen Zeilen enthaltenen Formatierungen und Formeln.

Der präferierte Weg ist über einen Button, den ich in meinen Versuchen via ActiveX-CommandButton eingefügt hatte. Als Code war hinterlegt:

Private Sub CommandButton1_Click()
Dim LRow As Long
With ActiveSheet
  LRow = .Cells(Rows.Count, 1).End(xlUp).Row
  With .Rows(LRow - 1)
     .Copy
     .Insert xlShiftDown, _
        CopyOrigin:=xlFormatFromLeftOrAbove
  End With
End With
End Sub

Grds. hat das schon funktioniert, allerdings hat die Funktion leider immer die Zeile 1 repliziert, es soll aber unterhalb der Zeile 12 die neue (Eingabe)Zeile eingefügt werden.

Ich wäre begeistert, wenn mir einer von euch helfen kann.

Im Voraus lieben Dank,
Christian

...zur Frage

VBA nur die ersten Unterordner anzeigen lassen?

Hallo,

wie muss ich diesen Code hier umschreiben damit NICHT die Unterordner der Unterordner angezeigt werden, sondern nur die der 'ersten Stufe'.

Also angenommen auf dem Laufwerk C:\ sind die Ordner

A, B, C, D, E

und diese Unterordner von C:\ enthalten jeweils auch Unterordner Namens
aa, bb, cc, dd, ee,

Dann schreibt der bisherige Code

A - aa
bb
cc
dd
ee
B - aa
bb

und so weiter.
Ich brauche aber nur die Ordner A, B, C, D, E und nicht deren Unterordner.

Public Sub OrdnerListen_Start()

  Dim fso As Object
Dim strPfad As String

    strPfad = "C:\"  

With ActiveSheet   

    .UsedRange.ClearContents

    Set fso = CreateObject("Scripting.FileSystemObject")

    Call OrdnerListen(fso, strPfad, .Range("A1")) ' Pfad anpassen!

    Set fso = Nothing

   End With

   End Sub

Private Sub OrdnerListen(fso As Object, Ordnerangabe As String, rng As Range, Optional Zeile As Long, Optional Spalte As Long)

On Error Resume Next

  Dim o, uo

  Set o = fso.GetFolder(Ordnerangabe)   

  rng.Offset(Zeile, Spalte).Value = o.Name    
Zeile = Zeile + 1

  For Each o In o.SubFolders

    Call OrdnerListen(fso, o.Path, rng, Zeile, Spalte)

  Next

  Set o = Nothing
Set uo = Nothing

End Sub

...zur Frage

Excel VBA - Darstellung waagerecht-vertikal beim kopieren ändern?

Hallo,

ich habe in einer fertigen Tabelle etwas geändert, um die Eingabe der Daten zu erleichtern. Statt die Daten in der Spalte zu erfassen, werden die Daten jetzt in einer Zeile eingegeben.

Also statt vorher in B10, B11, B12... jetzt in B10, C10, D10...

Die Daten werden mit Hilfe eine Makros in eine andere Tabelle transferiert und waagerecht eingefügt.

Da ich aber die Eingabeart verändert habe, werden die Daten jetzt untereinander in die Tabelle eingefügt.

Ich weiß, dass das mit "Application.Transpose" zu tun hat.

Nun weiss ich aber nicht wie ich die Zeile umbenennen muss, damit die waagerechte Darstellung übernommen wird.