Excel Tabelle abfragen+Ergebnis in Zelle schreiben

  • Excel

Es gibt 3 Antworten in diesem Thema. Der letzte Beitrag () ist von INOPIAE.

    Excel Tabelle abfragen+Ergebnis in Zelle schreiben

    Hallo liebe Community,

    ich bin pure Anfängerin auf dem Gebiet der "Excel VBA-Programmierung" und momentan "leicht" verzweifelt, da ich zu keinem Ergebnis komme.

    Beim Rescherchieren für ein mögliches Ergebnis, bin ich auf eure Website, gestoßen. :thumbsup:

    Ich habe folgendes Problem:

    Im Arbeitsblatt "Unternehmensprofil" habe ich jeweils zwei Tabellen (noch nicht fertig gestylt) erstellt.

    Die erste Tabelle enthält unterschiedliche Kategorien mit meinen Interessen und den daraus resultierenden Skills.

    Die Tabelle auf der rechten Seite (kleinere von beiden) gibt jeweils die Kategorien sowie Interessen wieder.

    Die Kategorien sind voreingestellt und können nicht geändert werden. Die Interessen wiederum können nach belieben ausgewählt werden.

    Was soll gemacht werden?

    Nach Auswahl der jeweiligen Interessen, soll Excel in der Tabelle (rechte Seite) jeweils die Prozentanzal ermitteln.

    Ich habe schon unterschiedliche Methoden versucht, aber keines funktionierte.


    Hier ist einmal der Quellcode:


    Quellcode

    1. Sub BarometerAuswertung()
    2. Dim i
    3. Dim varBegrArr As Variant
    4. Dim intAnz As Integer, j As Integer
    5. Dim singleArea As Range, cell1 As Range, rangeToUse As Range, rangeToUse1 As Range
    6. Dim fil(53) As String
    7. 'Kategorien anlegen
    8. fil1 = Sheets("Unternehmensprofil").Cells(5, 2).Value
    9. fil2 = Sheets("Unternehmensprofil").Cells(6, 2).Value
    10. fil3 = Sheets("Unternehmensprofil").Cells(7, 2).Value
    11. fil4 = Sheets("Unternehmensprofil").Cells(8, 2).Value
    12. fil5 = Sheets("Unternehmensprofil").Cells(9, 2).Value
    13. fil6 = Sheets("Unternehmensprofil").Cells(10, 2).Value
    14. fil7 = Sheets("Unternehmensprofil").Cells(11, 2).Value
    15. fil8 = Sheets("Unternehmensprofil").Cells(12, 2).Value
    16. fil9 = Sheets("Unternehmensprofil").Cells(13, 2).Value
    17. fil10 = Sheets("Unternehmensprofil").Cells(14, 2).Value
    18. fil15 = Sheets("Unternehmensprofil").Cells(15, 2).Value
    19. fil16 = Sheets("Unternehmensprofil").Cells(16, 2).Value
    20. 'Deklaration der Interessen Webentwicklung
    21. Fil17 = Sheets("Unternehmensprofil").Cells(5, 3).Value
    22. fil18 = Sheets("Unternehmensprofil").Cells(6, 3).Value
    23. fil19 = Sheets("Unternehmensprofil").Cells(7, 3).Value
    24. fil20 = Sheets("Unternehmensprofil").Cells(8, 3).Value
    25. fil21 = Sheets("Unternehmensprofil").Cells(9, 3).Value
    26. fil22 = Sheets("Unternehmensprofil").Cells(10, 3).Value
    27. 'Deklaration der Interessen Büro
    28. fil23 = Sheets("Unternehmensprofil").Cells(11, 3).Value
    29. fil24 = Sheets("Unternehmensprofil").Cells(12, 3).Value
    30. fil25 = Sheets("Unternehmensprofil").Cells(13, 3).Value
    31. fil26 = Sheets("Unternehmensprofil").Cells(14, 3).Value
    32. 'Deklaration der Interessen Gestaltung
    33. fil27 = Sheets("Unternehmensprofil").Cells(15, 3).Value
    34. fil28 = Sheets("Unternehmensprofil").Cells(16, 3).Value
    35. 'Deklaration Prozentwerte
    36. fil29 = Sheets("Unternehmensprofil").Cells(5, 4).Value
    37. fil30 = Sheets("Unternehmensprofil").Cells(6, 4).Value
    38. fil31 = Sheets("Unternehmensprofil").Cells(7, 4).Value
    39. fil32 = Sheets("Unternehmensprofil").Cells(8, 4).Value
    40. fil33 = Sheets("Unternehmensprofil").Cells(9, 4).Value
    41. fil34 = Sheets("Unternehmensprofil").Cells(10, 4).Value
    42. fil35 = Sheets("Unternehmensprofil").Cells(11, 4).Value
    43. fil36 = Sheets("Unternehmensprofil").Cells(12, 4).Value
    44. fil37 = Sheets("Unternehmensprofil").Cells(13, 4).Value
    45. fil38 = Sheets("Unternehmensprofil").Cells(14, 4).Value
    46. fil39 = Sheets("Unternehmensprofil").Cells(15, 4).Value
    47. fil40 = Sheets("Unternehmensprofil").Cells(5, 4).Value
    48. 'Auswertungstabelle Skill Barometer Kategorien
    49. fil41 = Sheets("Unternehmensprofil").Cells(4, 7).Value
    50. fil42 = Sheets("Unternehmensprofil").Cells(4, 8).Value
    51. fil43 = Sheets("Unternehmensprofil").Cells(4, 9).Value
    52. 'Auswertungstabelle Skill Barometer Interessen
    53. fil44 = Sheets("Unternehmensprofil").Cells(6, 7).Value
    54. fil45 = Sheets("Unternehmensprofil").Cells(6, 8).Value
    55. fil46 = Sheets("Unternehmensprofil").Cells(6, 9).Value
    56. varBegrArr = Array(fil1, fil2, fil3, fil4, fil5, fil6, fil7, fil8, fil9, fil10, fil11, fil12, fil13, fil14, fil15, fil16, Fil17, fil18, fil19, fil20, fil21, fil22, fil23, fil24, fil25, fil26, fil27, fil28, fil29, fil30, fil31, fil32, fil33, fil34, fil35, fil36, fil37, fil38, fil39, fil40, fil41, fil42, fil43, fil44, fil45, fil46)
    57. 'Meldung zum Löschen des Tabellenblattes abschalten-umgehen
    58. Application.DisplayAlerts = False
    59. 'Bereich (Haupttabelle) deklarieren
    60. Set rangeToUse = Range("C5:C16")
    61. 'Farbe für Bereich Haupttabelle wählen + Rahmenlinie(dicke)
    62. Cells.Interior.ColorIndex = 0
    63. Cells.Borders.LineStyle = xlNone
    64. rangeToUse.Interior.ColorIndex = 0
    65. 'Bereich eingrenzen
    66. For Each singleArea In rangeToUse.Areas
    67. singleArea.BorderAround ColorIndex:=0, Weight:=xlThin
    68. Next singleArea
    69. 'Allgemeine Abfrage
    70. Application.DisplayAlerts = False
    71. With Sheets("Unternehmensprofil").Range("A5:D16")
    72. End With
    73. End Sub


    Über eure Tipps oder Unterstützungen, freue ich mich.

    Beste Grüße
    Hallo,

    ich habe einige Fragen zu Deinem Code und einen generellen Hinweis.

    Erst der Hinweis: Setze doch bitte in die erste Zeile deines Modules diesen Code ein.

    Visual Basic-Quellcode

    1. Option Explicit


    Dies bewirkt, dass er dir Variablen, die Du nicht deklariet hast, direkt als Fehler auswirft.

    Wo nutzt Du die Variablen fil(53) aus Zeile 6.
    Eigentlich benötigst Du die Zeile 64 nicht wenn Du statt

    Visual Basic-Quellcode

    1. fil1 = Sheets("Unternehmensprofil").Cells(5, 2).Value


    dies verwendest

    Visual Basic-Quellcode

    1. fil(1) = Sheets("Unternehmensprofil").Cells(5, 2).Value


    Wo bzw. wie soll denn der Prozentwert berechnet werden? Ich sehe hierzu keine Berechnung.
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).
    Moin,

    Also die Prozentwerte sollen nicht direkt berechnet werden, sondern sollen lediglich ausgegeben werden.

    Sprich:

    Wenn der Benutzer in der Zelle "G6" das Interesse WordPress4 ausgewählt hat, soll in der Zelle "G8" der jeweile Prozentwert aus der Haupttabelle bezogen werden ("D5:D16")

    Mein Quellcode sieht wahrscheinlich recht wüst aus, aber mir fehlen einfach die Basics.

    Da waren ja einige Schusseligkeitsfehler vorhanden. :rolleyes:


    [codeOption Explicit
    Sub BarometerAuswertung()
    Dim i
    Dim varBegrArr As Variant
    Dim intAnz As Integer, j As Integer
    Dim singleArea As Range, cell1 As Range, rangeToUse As Range
    Dim fil(42) As String

    'Kategorien anlegen
    fil(1) = Sheets("Unternehmensprofil").Cells(5, 2).Value
    fil(2) = Sheets("Unternehmensprofil").Cells(6, 2).Value
    fil(3) = Sheets("Unternehmensprofil").Cells(7, 2).Value
    fil(4) = Sheets("Unternehmensprofil").Cells(8, 2).Value
    fil(5) = Sheets("Unternehmensprofil").Cells(9, 2).Value
    fil(6) = Sheets("Unternehmensprofil").Cells(10, 2).Value
    fil(7) = Sheets("Unternehmensprofil").Cells(11, 2).Value
    fil(8) = Sheets("Unternehmensprofil").Cells(12, 2).Value
    fil(9) = Sheets("Unternehmensprofil").Cells(13, 2).Value
    fil(10) = Sheets("Unternehmensprofil").Cells(14, 2).Value
    fil(11) = Sheets("Unternehmensprofil").Cells(15, 2).Value
    fil(12) = Sheets("Unternehmensprofil").Cells(16, 2).Value

    'Deklaration der Interessen Webentwicklung
    fil(13) = Sheets("Unternehmensprofil").Cells(5, 3).Value
    fil(14) = Sheets("Unternehmensprofil").Cells(6, 3).Value
    fil(15) = Sheets("Unternehmensprofil").Cells(7, 3).Value
    fil(16) = Sheets("Unternehmensprofil").Cells(8, 3).Value
    fil(17) = Sheets("Unternehmensprofil").Cells(9, 3).Value
    fil(18) = Sheets("Unternehmensprofil").Cells(10, 3).Value

    'Deklaration der Interessen Büro
    fil(19) = Sheets("Unternehmensprofil").Cells(11, 3).Value
    fil(20) = Sheets("Unternehmensprofil").Cells(12, 3).Value
    fil(21) = Sheets("Unternehmensprofil").Cells(13, 3).Value
    fil(22) = Sheets("Unternehmensprofil").Cells(14, 3).Value

    'Deklaration der Interessen Gestaltung
    fil(23) = Sheets("Unternehmensprofil").Cells(15, 3).Value
    fil(24) = Sheets("Unternehmensprofil").Cells(16, 3).Value

    'Deklaration Prozentwerte
    fil(25) = Sheets("Unternehmensprofil").Cells(5, 4).Value
    fil(26) = Sheets("Unternehmensprofil").Cells(6, 4).Value
    fil(27) = Sheets("Unternehmensprofil").Cells(7, 4).Value
    fil(28) = Sheets("Unternehmensprofil").Cells(8, 4).Value
    fil(29) = Sheets("Unternehmensprofil").Cells(9, 4).Value
    fil(30) = Sheets("Unternehmensprofil").Cells(10, 4).Value
    fil(31) = Sheets("Unternehmensprofil").Cells(11, 4).Value
    fil(32) = Sheets("Unternehmensprofil").Cells(12, 4).Value
    fil(33) = Sheets("Unternehmensprofil").Cells(13, 4).Value
    fil(34) = Sheets("Unternehmensprofil").Cells(14, 4).Value
    fil(35) = Sheets("Unternehmensprofil").Cells(15, 4).Value
    fil(36) = Sheets("Unternehmensprofil").Cells(5, 4).Value

    'Auswertungstabelle Skill Barometer Kategorien
    fil(37) = Sheets("Unternehmensprofil").Cells(4, 7).Value
    fil(38) = Sheets("Unternehmensprofil").Cells(4, 8).Value
    fil(39) = Sheets("Unternehmensprofil").Cells(4, 9).Value

    'Auswertungstabelle Skill Barometer Interessen
    fil(40) = Sheets("Unternehmensprofil").Cells(6, 7).Value
    fil(41) = Sheets("Unternehmensprofil").Cells(6, 8).Value
    fil(42) = Sheets("Unternehmensprofil").Cells(6, 9).Value

    varBegrArr = Array(fil(1), fil(2), fil(3), fil(4), fil(5), fil(6), fil(7), fil(8), fil(9), fil(10), fil(11), fil(12), fil(13), fil(14), fil(15), fil(16), fil(17), fil(18), fil(19), fil(20), fil(21), fil(22), fil(23), fil(24), fil(25), fil(26), fil(27), fil(28), fil(29), fil(30), fil(31), fil(32), fil(33), fil(34), fil(35), fil(36), fil(37), fil(38), fil(39), fil(40), fil(41), fil(42))

    'Meldung zum Löschen des Tabellenblattes abschalten-umgehen
    Application.DisplayAlerts = False

    'Bereich (Haupttabelle) deklarieren
    Set rangeToUse = Range("A5:D16")

    'Farbe für Bereich Haupttabelle wählen + Rahmenlinie(dicke)
    Cells.Interior.ColorIndex = 0
    rangeToUse.Interior.ColorIndex = 0

    'Bereich eingrenzen
    For Each singleArea In rangeToUse.Areas
    singleArea.BorderAround ColorIndex:=0
    Next singleArea

    'Allgemeine Abfrage
    Application.DisplayAlerts = False

    For intAnz = 1 To 42

    Next intAnz

    Danke für Deine / Eure Hilfe

    Dieser Beitrag wurde bereits 4 mal editiert, zuletzt von „TempUser“ ()

    TempUser schrieb:

    Wenn der Benutzer in der Zelle "G6" das Interesse WordPress4 ausgewählt hat, soll in der Zelle "G8" der jeweile Prozentwert aus der Haupttabelle bezogen werden ("D5:D16")


    Woher weiß denn Dein Code, dass in G6 WordPress4 steht und das in G8 dann welcher Wert aus fil(25)-fil(36) eingefügt werden soll?

    varBegrArr = Array(fil(1), fil(2), fil(3), fil(4), fil(5), fil(6), fil(7), fil(8), fil(9), fil(10), fil(11), fil(12), fil(13), fil(14), fil(15), fil(16), fil(17), fil(18), fil(19), fil(20), fil(21), fil(22), fil(23), fil(24), fil(25), fil(26), fil(27), fil(28), fil(29), fil(30), fil(31), fil(32), fil(33), fil(34), fil(35), fil(36), fil(37), fil(38), fil(39), fil(40), fil(41), fil(42))

    Warum machst Du dies? Du hast doch schon ein Array fil().
    NB. Es ist doch schön, wenn man lesbare Namen vergibt. Siehe auch [VB.NET] Beispiele für guten und schlechten Code (Stil).