Arry in einer Zeile ausgeben

Moderator: ModerationP

Arry in einer Zeile ausgeben

Beitragvon Nobby35 » 16. Sep 2018, 08:21

Hallo zusammen,

ich möchte die Ausgabe eines Arry in einer Zeile ab (F22) bis (?22) haben und nicht wie hier in einer Spalte.
Könnte mir jemand schreiben wie ich das schreiben muss?

Code: Alles auswählen
.Range("F22").Resize(D1.Count) = WorksheetFunction.Transpose(D1.items)



Grüße
Nobby
MfG

Nobby35
Nobby35
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 205
Registriert: 25. Aug 2007, 10:12

Re: Arry in einer Zeile ausgeben

Beitragvon RPP63 » 16. Sep 2018, 08:30

Moin!
Du musst (ungetestet) doppelt transponieren:
Code: Alles auswählen
.Range("F22").Resize(D1.Count) = Worksheetfunction.Transpose(Worksheetfunction.Transpose(D1.items))

Gruß Ralf
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9783
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Arry in einer Zeile ausgeben

Beitragvon Nobby35 » 16. Sep 2018, 08:40

Hallo Ralf,

funktioniert leider nicht. Er schreibt mir jetzt nur noch den ersten Wert mehrmals in die Spalte.

Trotzdem Danke.

es wäre schön wenn noch jemand eine Idee hätte.
MfG

Nobby35
Nobby35
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 205
Registriert: 25. Aug 2007, 10:12

Re: Arry in einer Zeile ausgeben

Beitragvon RPP63 » 16. Sep 2018, 08:43

Dein .Resize stimmt ja auch nicht!
Ich habe jetzt (mit "eingebauten" Arrays) erfolgreich getestet.
Nimm ein leeres Blatt.
Code: Alles auswählen
Sub alle_CustomLists()
Dim i&, arr
With Application
  For i = 1 To .CustomListCount
    arr = .GetCustomListContents(i)
    Cells(i, 1).Resize(1, UBound(arr)) = _
      WorksheetFunction.Transpose(WorksheetFunction.Transpose(arr))
  Next
End With
Columns.AutoFit
End Sub
Benutzeravatar
RPP63
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9783
Registriert: 19. Okt 2012, 17:41
Wohnort: mitten im Pott

Re: Arry in einer Zeile ausgeben

Beitragvon slowboarder » 16. Sep 2018, 08:46

Hi

1. Nicht transponieren. Ein 1-d-Array wird in einem 2-d-Umfeld automatisch in ein 2-d-Array mit einer Zeile gewandelt.

2. Führe den Resize in die richtige Richtung aus. Der erste Parameter gibt die Anzahl der Zeilen vor und erst der zweite die Spalten.

Code: Alles auswählen
.Range("F22").Resize(1, D1.Count) = D1.items


Gruß Daniel
slowboarder
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 24842
Registriert: 18. Apr 2009, 13:33

Re: Arry in einer Zeile ausgeben

Beitragvon Nobby35 » 16. Sep 2018, 08:54

Hallo Ralf,
bekomme es nicht hin.
Ich hänge mal den gesamte Code an, vllt. kannst du mir sagen wie genau ich die (D1.Items) gelistet bekomme.

Code: Alles auswählen
Public Sub in_Zeile()
Dim arr
Dim ws As Worksheet
Dim L As Long
Dim str As String
Dim D1
Dim strDate

Set D1 = CreateObject("Scripting.Dictionary")

Set ws = Worksheets("Nachbauten")

With Sheets("Übersicht")
strDate = .Cells(1, 2)

arr = ws.Range("A2").CurrentRegion
            For L = 2 To UBound(arr)
            If arr(L, 1) = strDate Then
                str = arr(L, 1) & "+" & arr(L, 3) & "+" & arr(L, 6)

                D1(str) = arr(L, 6) 'Spalte F
                End If
            Next
    .Range("F22").Resize(D1.Count) = WorksheetFunction.Transpose(D1.items)

End With
End Sub
MfG

Nobby35
Nobby35
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 205
Registriert: 25. Aug 2007, 10:12

Re: Arry in einer Zeile ausgeben

Beitragvon Nobby35 » 16. Sep 2018, 08:58

Hallo Daniel,

das wars! Vielen Dank. Kann ich das auch sortieren bevor ich es ausgebe?
MfG

Nobby35
Nobby35
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 205
Registriert: 25. Aug 2007, 10:12

Re: Arry in einer Zeile ausgeben

Beitragvon Klaus-Dieter » 16. Sep 2018, 09:08

Hallo Nobby,

Kann ich das auch sortieren bevor ich es ausgebe?


woher soll das Daniel wissen?
Viele Grüße
Klaus-Dieter
Lösungsvorschläge sind, wenn es keinen anders lautenden Hinweis gibt, von mir getestet.
Künstliche Intelligenz ist besser als natürliche Dummheit.
Benutzeravatar
Klaus-Dieter
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 17510
Registriert: 27. Nov 2003, 23:03
Wohnort: Sassenburg

Re: Arry in einer Zeile ausgeben

Beitragvon slowboarder » 16. Sep 2018, 09:13

Hi

Ich würde es hinterher in der Tabelle mit der normalen Excelmenü-Funktion sortieren.
Das ist, wenn du noch die alte 2003er Codeschreibweise kennst (welche auch in den neuen Versionen funktioniert) eine Zeile Code.

Wenn du vorher sortieren wolltest, müsstest du dir erstmal selber eine Sortierroutine programmieren, weil meines Wissens nach eine Sortierfunktion für Arrays in VBA nicht vorhanden ist.

Gruß Daniel
slowboarder
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 24842
Registriert: 18. Apr 2009, 13:33

Re: Arry in einer Zeile ausgeben

Beitragvon Nobby35 » 16. Sep 2018, 09:18

Hallo Daniel,

ich werde es versuchen und wenn ich es klemmt melde ich mich noch einmal.

Nochmals Vielen Dank
MfG

Nobby35
Nobby35
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 205
Registriert: 25. Aug 2007, 10:12

Re: Arry in einer Zeile ausgeben

Beitragvon snb » 16. Sep 2018, 20:21

Code: Alles auswählen
Sub M_snb()
    sn=sheets("Nachbauten").cells(1).currentregion
    c00=Sheets("Übersicht").Cells(1, 2)

    with createobject("scripting.dictionary")
      For j = 2  To UBound(sn)
        If sn(j,1) = c00 Then .item(sn(j, 1) & "+" & sn(j, 3) & "+" & sn(j, 6))=sn(j,6)
      Next

      sheets("Nachbauten").cells(22,6).Resize( ,.Count) = .items
    End With
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 6126
Registriert: 25. Sep 2014, 16:37

Re: Arry in einer Zeile ausgeben

Beitragvon HSV » 16. Sep 2018, 20:54

Warum nicht?
Code: Alles auswählen
If sn(j, 1) = c00 Then .Item(sn(j, 1) & sn(j, 3) & sn(j, 6)) = sn(j, 6)
Gruß, Harry.
Benutzeravatar
HSV
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 210
Registriert: 18. Sep 2013, 21:45


Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: Andreas1963, MisterBurns und 21 Gäste