Office: In Array suchen und Werte ausgeben

Helfe beim Thema In Array suchen und Werte ausgeben in Microsoft Excel Hilfe um das Problem gemeinsam zu lösen; Moinsen Rabauken, ich hab mal ne Frage an Euch Experten und hoffe ihr könnt mir als ambitionierten Quereinsteiger weiterhelfen. Ich würde das jetzt... Dieses Thema im Forum "Microsoft Excel Hilfe" wurde erstellt von Hauke_Rabauke, 6. September 2018.

  1. In Array suchen und Werte ausgeben


    Moinsen Rabauken,

    ich hab mal ne Frage an Euch Experten und hoffe ihr könnt mir als ambitionierten Quereinsteiger weiterhelfen.

    Ich würde das jetzt eigentlich mit einr Do while Schleife lösen, will mich aber auch mal weiterentwickeln und versuchen das über ein Array zu lösen.
    Würde den ganzen Prozess höchst wahrscheinlich performanter machen.

    Also hier das Problem:
    Ich bekomme eine Auswertung aus einem HTML-Formular als *.xlsx in folgendem Format (ähnliches Beispiel als Anhang)

    Ich habe jetzt schon die Namen und Projekte mit folgendem Code in ein Array gelesen:
    (im Original fängt der Werte Bereich in Cells(6,2) an)


    PHP:
             Public Function MatrixFüllen() As Variant()
    Dim ZeileNr     As Integer
    Dim SpalteNr    
    As Integer
    Dim Matrix
    ()    As Variant
    Dim intZeileMatrix 
    As Integer
    Dim intSpalteMatrix 
    As Integer

    ' Matrix auf Zeilen- und Spaltenzahl der Auswahl bringen
    Dabei soll jeder Index bei 1 beginnen
    ReDim Matrix
    (1 To 671 To 51)
    intZeileMatrix 1
    intSpalteMatrix 
    1
    ' Auswahl zeilenweise lesen
    For ZeileNr = 6 To ActiveSheet.UsedRange.Rows.Count
    Auswahl spaltenweise lesen
    For SpalteNr 2 To ActiveSheet.UsedRange.Columns.Count 1
    With Cells
    (ZeileNrSpalteNr)
    If 
    Not IsEmpty(.ValueThen
    ' Matrix elementweise füllen
    Matrix(intZeileMatrix, intSpalteMatrix) = Cells(ZeileNr, SpalteNr).Value
    '                
    Else
    '                    ' Fehlermeldung ausgeben
    '                    MsgBox "Zelle " & .Address & " enthält keine Zahl"
    '                    
    Exit Function
    End If
    End With
    intSpalteMatrix 
    intSpalteMatrix 1
    Next SpalteNr
    intZeileMatrix 
    intZeileMatrix 1
    intSpalteMatrix 
    1
    Next ZeileNr

    Rückgabewert der Funktion
    MatrixFüllen 
    Matrix
    End 
    Function
    :)
     
    Hauke_Rabauke, 6. September 2018
    #1
  2. Hajo_Zi
    Hajo_Zi Erfahrener User
    Hochgeladene Bilder können zwar als solche in Excel importiert werden, sind jedoch bei der Lösung von Problemen nicht sehr hilfreich, da man die eigentlichen Daten nicht ohne große und zeitraubende Umwege direkt in die Tabelle übertragen kann.
    aussagekräftigen Dateinamen hoch.
    Wenn du an Stelle einer Demomappe deine Originalmappe hochladen willst, diese aber sensible Daten enthält, kannst du diese Daten
    In Array suchen und Werte ausgeben logo_hajo3.gif
     
  3. Moin HaJo,

    Alles klar, danke für den Hinweis. Ich habe mal ne Beispieldatei angehängt.

    Grüße Hauke
     
    Hauke_Rabauke, 8. September 2018
    #3
  4. Hajo_Zi
    Hajo_Zi Erfahrener User

    In Array suchen und Werte ausgeben

    Gut ich kann Dir Leider nicht helfen, da bei mir eine XLSX Datei kein Makro enthält.
    Viel Erfolg noch.
     
  5. Moinsen nochmal,

    Danke für den Hinweis. Ich habe jetzt mal ne Mustermappe erstellt.

    Da ist mir auch noch gleich eine weitere Frage geekommen. Wie kann ich den Array dynamisch erstellen?
    so etwa nach dem Motto: den Code:
    PHP:
             ReDim Matrix(1 To 41 To 17)
     
    Hauke_Rabauke, 8. September 2018
    #5
  6. Hallöle, ich hab das Problem erstmal mit ner konventionellen Schleife gelöst. Hier der Code für die, die´s interessiert:


    PHP:
             Sub Werteauslesen()
    Dim i As IntegeriSpalte As IntegerintZeile As Integer
    Dim strVorname 
    As StringstrNachname As StringstrProject1 As StringstrProject2 As StringstrProject3 As StringstrProject4 As String
    Dim strProject5 
    As String
    Dim rngZellwert 
    As Range

    iSpalte 
    4
    intZeile 
    6
    1

    Do While Cells(intZeile2).Value <> ""
    strVorname Cells(intZeile3).Value
    strNachname 
    Cells(intZeile2).Value
    For iSpalte 4 To 51 Anzahl der Spalten
    If IsEmpty(Cells(intZeileiSpalte)) = True Then
    iSpalte 
    iSpalte
    ElseIf Cells(intZeileiSpalte) = And strProject1 "" Then
    strProject1 
    Cells(5iSpalte).Value
    ElseIf Cells(intZeileiSpalte) = And strProject1 <> "" And strProject2 "" Then
    strProject2 
    Cells(5iSpalte).Value
    ElseIf Cells(intZeileiSpalte) = And strProject1 <> "" And strProject2 <> "" And strProject3 "" Then
    strProject3 
    Cells(5iSpalte).Value
    ElseIf Cells(intZeileiSpalte) = And strProject1 <> "" And strProject2 <> "" And strProject3 <> "" And strProject4 "" Then
    strProject4 
    Cells(5iSpalte).Value
    ElseIf Cells(intZeileiSpalte) = And strProject1 <> "" And strProject2 <> "" And strProject3 <> "" And strProject4 <> "" And strProject5 "" Then
    strProject5 
    Cells(5iSpalte).Value
    End 
    If
    Next
    With Sheets
    ("Ergebnisse")
    .
    Cells(i1).Value strVorname
    .Cells(i2).Value strNachname
    .Cells(i3).Value strProject1
    .Cells(i4).Value strProject2
    .Cells(i5).Value strProject3
    .Cells(i6).Value strProject4
    .Cells(i7).Value strProject5
    End With

    strProject1 
    ""
    strProject2 ""
    strProject3 ""
    strProject4 ""
    strProject5 ""
    intZeile intZeile 1
    1
    Loop
    End Sub
     
    Hauke_Rabauke, 8. September 2018
    #6
  7. Hallöchen,

    du hast dir wirklich Gedanken gemacht ... Respekt !!! *Smilie

    Du musst nicht mühselig dein Array über Schleifen zusammenfitzeln.
    Du kannst auch einfach das Array mit einer Range füllen.

    DeinArray = Tabelle1.Usedrange

    reicht theoretisch schon. Natürlich nicht so schön und auch fehleranfällig ... aber ginge.
     
    Flotter Feger, 8. September 2018
    #7
  8. In Array suchen und Werte ausgeben

    Aloha,

    danke für Deine Rückmeldung.

    Hast Du noch ne Idee für mich, wie ich das Array auswerte? Vielleicht hab ich echt n Brett vorm Kopf, aber ich versteh halt net, wie ich die Werte aus dem Arry in die neue Tabelle bekomme. Wobei sozusagen die Werte je Zeile so gefüllt werden sollen, wie sie auch in der Matrix befüllt sind. Soll heisen, nur die befüllten Felder der Matrix sollen hintereinander auf einem anderen sheet ausgegeben werden.

    HIer mal n Bild aus dem befüllten array

    LG
     
    Hauke_Rabauke, 8. September 2018
    #8
  9. Moin!
    Hier mal dein Beispiel angepasst zur Ausgabe. Der Code gibt das jetzt in Tabelle1 aus, dass ggf. noch ändern. In der Function habe ich dir mal noch eine Zeile ergänzt, die zeigt, wie man dynamisch die Größe festlegt - alternativ zum Vorschlag vom FlottenFeger. Bei der Ausgabe gibt er dir dann aber nur die 1 hintereinander aus. Weiß nicht, ob es da besser wäre dort Projekt xy eintragen zu lassen. Kannst ja aber mal schauen.

    Code:
    VG
     
    1Matthias, 8. September 2018
    #9
  10. Moin,

    vielen Dank für deine Rückmeldnug. Ich werde den Code heute abend testen. Ich wünsch erstmal einen schönen Sonntag.
     
    Hauke_Rabauke, 8. September 2018
    #10
  11. Moin Matthias

    super, funktioniert. Eine kleine Anpassung muss ich noch machen, da er mir zwar jetzt die Projekte dynamisch rauswirft und ich nicht vorher dimensionieren muss. Jedoch wirft er mir zwar pro Zeile Vor- und Nachname raus, aber halt jeweils immer nur die "1" als Spaltenhalter für das Projekt. Ich melde mich dann gleich nochmal mit dem fertigen Code. Vielen DAnk nochmal für die schnelle Hilfe.

    Hauke
     
    Hauke_Rabauke, 9. September 2018
    #11
  12. Ja coole Sache. Es ist geschafft.

    Habe noch ne schfleife für die Name und die Projekte eingezogen, da die Namen sich ja ändern, die Projekte ja in der Überschrift (bei mir im Original HTML-File in Zeile 5 stehen. Jetzt klappts und ist super schnell. Hammer. Danke.


    PHP:
              Matrix elementweise füllen
    If SpalteNr 3 Then
    matrix
    (intZeileMatrixintSpalteMatrix) = Cells(5SpalteNr).Value
    Else
    matrix(intZeileMatrixintSpalteMatrix) = Cells(ZeileNrSpalteNr).Value
    End 
    If
     
    Hauke_Rabauke, 9. September 2018
    #12
Thema:

In Array suchen und Werte ausgeben

Die Seite wird geladen...
  1. In Array suchen und Werte ausgeben - Similar Threads - Array Werte ausgeben

  2. Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte

    in Microsoft Excel Hilfe
    Adressen in eine Zelle bei Übereinstimmung eindeutiger Werte einer anderen Spalte: Hallo zusammen, wer letzteren Thread kennt, hier eine Neuauflage. Problem: Aus Array-Berechnungen (Variablen von Let) ein weiteres Array zu erzeugen, welches für alle eindeutigen Werte aus G die...
  3. Array so befüllen, dass die gefundene Werte nur einmal vorkommen

    in Microsoft Excel Hilfe
    Array so befüllen, dass die gefundene Werte nur einmal vorkommen: Hallo Zusammen, Wie kann man den Array so befüllen, das die Werte nur einmal vorkommen (Leere Bereiche müssen auch übersprungen werden) [ATTACH] Wenn eine Schleife merkt das der Wert (z.B....
  4. Wert aus Array summieren/kumulieren (mehrdimensional)

    in Microsoft Excel Hilfe
    Wert aus Array summieren/kumulieren (mehrdimensional): Hallo zusammen, ich nutze folgenden Code um eine Array-Variable auszulesen: Code: Dim arrBeispiel(5, 5) As Byte Dim lngSumme As Long arrBeispiel(1, 1) = 1 arrBeispiel(1, 2) = 1 lngSumme =...
  5. Mehrere Werte aus Array auslesen

    in Microsoft Excel Hilfe
    Mehrere Werte aus Array auslesen: Hallo zusammen, ich müsste mehrere Werte aus einem Array auslesen. Das Array ist gefüllt mit den Werten 1 - 30. Bspw: Wert a = 28; Wert b = 2 Wenn Wert a in Array gefunden, dann suche nach Wert b...
  6. Einzelne Werte aus Array ausgeben

    in Microsoft Excel Hilfe
    Einzelne Werte aus Array ausgeben: Hallo Ich habe in einem Array mehrere Werte. z.B 11 . 12 . 13 . 14 . 15 . 16 . 17 nun will ich einzelne Werte aus dem Array auf ein mal ausgeben. z.B A1 . B1 . C1 . D1 . E1 . F1 . G1 11 . 12 ....
  7. Array nach max. Wert durchsuchen und zusammen mit dessen Stelle im Array ausgeben

    in Microsoft Excel Hilfe
    Array nach max. Wert durchsuchen und zusammen mit dessen Stelle im Array ausgeben: Hallo liebe Forenmitglieder! Ich habe da mal eine kurze Frage: Ich habe ein eindimensionales Array (arr_Diagonale) das mit Werten von 0 bis n-1 gefüllt ist. Nun möchte ich den Maximalwert mir...
  8. string suchen in array und wert ausgeben?

    in Microsoft Excel Hilfe
    string suchen in array und wert ausgeben?: Guten Tag, ich habe ein kleines problem welches ich jetzt seit einiger zeit zu beheben versuche. ich habe eine excel sheet mit computer-namen, also alles in einer spalte untereinander....
  1. Diese Seite verwendet Cookies, um Inhalte zu personalisieren, diese deiner Erfahrung anzupassen und dich nach der Registrierung angemeldet zu halten.
    Auf dieser Website werden Cookies für die Zugriffsanalyse und Anzeigenmessung verwendet.
    Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden