Makro zum Tabelle befüllen
#1
Hallo Leute,

ich habe folgendes Anliegen. Ich habe 2 Tabellenblätter. Die Daten und eine Tabelle. 
Mein Ziel ist es per Makro die Tabelle mit Daten zu füllen. Am besten via "Zählenwenns". Da gezählt werden soll, wie viele Personen eine bestimmte Kombination aus P und T haben. Ich hoffe ich konnte mich verständlich ausdrücken. In Zelle G8 würde eine 2 stehen in Zelle F7 eine 1. In der Zelle I1 steht der Tabellenblattname, von dem die Daten kommen sollen. Berni hatte schon einen sehr guten Ansatz. Ich habe allerdings seinen Code etwas geändert. Jedoch habe ich hier einen Fehler und wenn ich die Formel von Berni übernehme, dann öffnet sich bei mir der Explorer. An dieser Stelle schon mal vielen Dank Berni!  :15:

Code:
Range("g8").FormulaLocal = "=ZÄHLENWENNS(" & ActiveSheet.Range("I8") & "!aa7:aa9;a8" & ActiveSheet.Range("I8") & "!Ab7:ab9;g13)"






CP: https://www.ms-office-forum.net/forum/sh...?p=1903452


Angehängte Dateien
.xlsm   Forum.xlsm (Größe: 186,21 KB / Downloads: 7)
Top
#2
Hallo,

fehlendes Semikolon nach a8 ?

Gruß Uwe
[-] Folgende(r) 1 Nutzer sagt Danke an Kuwer für diesen Beitrag:
  • elamigo
Top
#3
leider der gleiche Fehler  Huh


Angehängte Dateien Thumbnail(s)
   
Top
#4
Was erwartest du denn, wenn in I8 nichts drinsteht? Du musst halt schon auf die richtige Zelle verweisen.
Der Hinweis mit dem fehlenden Semikolon gilt natürlich trotzdem.

PS: Im übrigen finde ich es nicht ganz optimal, wenn du von vornherein crosspostest. Du solltest mittlerweile festgestellt haben, dass viele Helfer parallel in mehreren Foren ihr Unwesen treiben, also ist die Chance nicht wahnsinnig viel größer, dass du schneller eine Antwort bekommst. Und bis dato wurde dir hier doch tadellos geholfen, oder?

PPS: Danke für die Blumen!
Schöne Grüße
Berni
Top
#5
Ja ich hatte in der Formel einen Fehler. Aber ist auch schnell von i8 in i1 geändert. Allerdings funktioniert es immer noch nicht bzw. ist für dieses Problem KEIN LÖSUNG gefunden.  Huh

Meine persönliche Erfahrung gibt dir zum Teil recht, aber ich hatte auch schon posts die nur in anderen Foren beantwortet wurden. Ja bis dato wurde alles gelöst, bei diesem Problem noch nicht, aber scheint auch etwas komplizierter zu sein - leider  Undecided 


Die Blumen hast du dir verdient  Exclamation


P.S.: Die Formel per se ist richtig denke ich, nur dieses trennen mit den "&" klappt nicht so gut.
Top
#6
Aaaaaalso:
1. Du hast den Code für die Schaltfläche in ein allgemeines Modul geschrieben, aber nicht auf das richtige Tabellenblatt verwiesen. Spielt zwar vermutlich keine große Rolle, da du ActiveSheet nimmst und die Schaltfläche nur im ActiveSheet ausführen kannst. Richtig ist es aber trotzdem nicht.

2. Wenn ich deine Formel ausbessere, indem ich das Semikolon setze und "I8" gegen "I1" austausche, funktioniert alles wunderbar (solange ich mich im Tabellenblatt "Tabelle" befinde).

Code:
Sub Schaltfläche1_Klicken()
With Sheets("Tabelle")
   .Range("g8").FormulaLocal = "=ZÄHLENWENNS(" & .Range("I1") & "!aa7:aa9;a8;" & .Range("I1") & "!Ab7:ab9;g13)"
End With
End Sub


Angehängte Dateien
.xlsm   Forum.xlsm (Größe: 163,23 KB / Downloads: 1)
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • elamigo
Top
#7
Sehr stark und danke Berni!
Das das ganze jetzt so direkt an das Tabellenblatt gebunden ist wusste ich nicht - FU**! Undecided

Wie verhält es sich, wenn der Tabellenblattname nicht immer gleich ist?
Top
#8
https://docs.microsoft.com/en-us/office/...dex-number
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • elamigo
Top
#9
Hi Berni,

brauche ich nicht einfach ein Ausdruck der folgendes bewirkt?

Code:
Sub Schaltfläche1_Klicken()
With Sheets("AKTUELLES TABELLENBLATT")
  .Range("g8").FormulaLocal = "=ZÄHLENWENNS(" & .Range("I1") & "!aa7:aa9;a8;" & .Range("I1") & "!Ab7:ab9;g13)"
End With
End Sub


also das bei "with Sheets" immer das aktuelle Tabellenblatt hinkommt. Dann müsste es doch gehen oder? Bitte Erklärung oder Hilfe bin etwas verloren Berni.... Huh
Top
#10
Code:
With ActiveSheet

ActiveSheet solltest du halt wirklich nur dann verwenden, wenn sichergestellt ist, dass du dich tatsächlich auf dem Blatt befindest, auf dem die Aktion ausgeführt werden soll.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • elamigo
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste