Excel Indirekt –> Flexibel

Was macht man, wenn man in einer Tabelle bspw. mit Summewenn aus mehreren Tabellenblättern Werte holen will?

In einer Spalte steht, aus welchem Tabellenblatt die Informationen kommen sollen. Die Quell Tabellenblätter sehen identisch aus.

Funktioniert bestens mit Indirekt

(Auszug aus einer Datei: In der Spalte vorner stehen die Nummern der Tabellenblätter).

 

 

 

 

Die gewohnte Summwennformel sieht etwas speziell aus:

F237 ist hier der Verweis auf die (Flexible) Zelle mit dem Tabellenblatt, der Rest der Formel muss in Anführungs- und Schlusszeichen “ gesetzt werden. Dies ist dann der statische Teil.

Ohne Dynamik würde die gleiche Formel so aussehen:

Veröffentlicht unter Excel, Office | Schreib einen Kommentar

Aussichtstürme und -plattformen

Aussichtstürme und -plattformen

Unvollständig und Projekt für was anderes.

gelb –> Projekte
rot –> abgerissen
rest –> Besucht

Veröffentlicht unter Uncategorized | Schreib einen Kommentar

Excel : Array abfüllen

Eine einfache Möglichkeit, Arrays abzufüllen und Standards zu setzen. (ZB. wenn BO Queries die Tabellenköpfe wüst abfüllt).

Sub scm()

Dim scm_arr

scm_arr = Array(„“, „TATP“, „Auftrag ID“, „Auftrag“, „Projekt ID“, „Projekt“, „Planposition ID“, „Planposition“, „Teilprojekt“, „Kostenart ID“, „Kostenart“, „Kreditor ID“, „Kreditor“, „Belegart“, „Beleg Nr.“, „Belegtext“, „Geschäftsjahr“, „Periode/Jahr“, „Periode“, „Belegdatum“, „CHF“)

For i = 1 To UBound(scm_arr)

Debug.Print i

Cells(1, i).Value = i
Cells(2, i).Value = scm_arr(i)

Next i

Bemerkung: mit dem „“ am Anfang des Array fülle ich die Position 0 der Kette mit einem Blank. Der Vorteil ist dann die Steuerung der Loops, die immer bequem mit 1 beginnen und keine Kniffe benötigen.

Veröffentlicht unter Excel, Uncategorized | Schreib einen Kommentar

Funktion : Verketten2

Man kennt im Excel das verketten:

=Verketten(A1;A2;A3) verbindet mehrere Zellen.

Beispiel:

 

 

Etwas mühsam, wenn man oft, viele Zellen verknüpfen will. Einfacher ist die folgende Funktion:

=verketten2(range,trennzeichen)

 

 

 

Möglich mit diesem Makro:

Function Verketten2(ByRef bereich As Range, Trennzeichen As String) As String

Dim rng As Range

For Each rng In bereich
If rng <> „“ Then
Verketten2 = Verketten2 & rng & Trennzeichen
End If
Next

If Len(Verketten2) > 0 Then _

Verketten2 = Left(Verketten2, Len(Verketten2) – Len(Trennzeichen))
End If

End Function

Veröffentlicht unter Excel | Verschlagwortet mit , | Schreib einen Kommentar