Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Problem bei VBA & freigegebenen Arbeitsmappen

Problem bei VBA & freigegebenen Arbeitsmappen
23.04.2013 10:54:17
Schmitty
Hallo,
da ich mal wieder in meinem alten Thema nicht weiterschreiben kann, geht es jetzt hier weiter... (das alte Thema findet Ihr hier: https://www.herber.de/forum/archiv/1308to1312/t1308934.htm#1308934)
@ Klaus M.vdT.:
Ich habe da noch ein paar Fragen:
1.) Wie kann ich dein VBA in Zukunft ändern, wenn eine neue Spalte (für das Jahr 2014, usw.) hinzukommt.
2.) Ich möchte gerne das Eingabefeld für das Jahr im normalfall freilassen, so dass ich jedes mal gezwungen bin, das Jahr einzutragen. Wie kann ich verhindern, dass wenn ich den Statistik-Button klicke der VBA-Debugger öffnet. lieber währe mir irgendwo eine Anzeige wie "Bitte Jahr eintragen" oder etwas ähnliches.
3.) Wie kann ich dein VBA-Script abändern, dass er jedesmal vor der Berechnung das late Ergebnis löscht. Mir ist nämlich aufgefallen, dass wenn ich z. B. bei der KD-Nr. 1 für 2013 die Berechnung durchführe und da nach aus welchem Grund auch immer noch einmal auf den Statistik-Button drücke, er das vorherige Ergebnis mit dem neuen addiert...
Gruß
Christian

Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Das Thema ...
23.04.2013 11:28:25
Klaus
... ist doch schon lange nicht mehr "Freigabemodus", oder?
zu 1)
musst du nicht. Ich habe mir das bereits gedacht und ermittele die Spalte in dieser Zeile:
iColMenge = WorksheetFunction.Match("Gesamtmenge der Lieferungen", Range("A5").EntireRow, False)
es wird der string "Gesamtmenge der Lieferungen" gesucht und ebendiese Spalte genommen. Wenn du weitere Jahres-Spalten einfügst, findet es automatisch die richtige Spalte.
2)+3) aktualisierter Code:
Sub OhneFunctionMenge()
Dim iColJahr As Integer
Dim iColMenge As Integer
Dim lRowF As Long
Dim lRowL As Long
Dim l As Long
Dim arrTeil
Dim N As Integer
Dim rFilter As Range
Dim jTMP
iColMenge = WorksheetFunction.Match("Gesamtmenge der Lieferungen", Range("A5").EntireRow, False) _
If Cells(4, iColMenge).Value = "" Then
'Solange nach dem Jahr fragen, bis ein gültiges eingegeben wurde
nochmal:
jTMP = InputBox("Bitte das Jahr eingeben")
If WorksheetFunction.CountIf(Range("A4").EntireRow, jTMP) = 0 Then GoTo nochmal
iColJahr = WorksheetFunction.Match(jTMP * 1, Range("A4").EntireRow, False)
Cells(4, iColMenge).Value = jTMP * 1
Else
iColJahr = WorksheetFunction.Match(Cells(4, iColMenge).Value, Range("A4").EntireRow, False)
End If
lRowF = 6
lRowL = Cells(Rows.Count, 2).End(xlUp).Row
If lRowL = lRowF Then
Cells(lRowF, iColMenge).Value = 0
arrTeil = Split(Cells(lRowF, iColJahr).Value, "-")
For N = 1 To UBound(arrTeil) Step 2
Cells(lRowF, iColMenge).Value = Cells(lRowF, iColMenge).Value + CSng(arrTeil(N))
Next N
Else
For Each rFilter In Range(Cells(lRowF, iColMenge), Cells(lRowL, iColMenge)).SpecialCells( _
xlCellTypeVisible)
'Bei "nix" einen Nullwert eintragen (vorherige Version: löschen)
Cells(rFilter.Row, iColMenge).Value = 0 '.clearcontents
arrTeil = Split(Cells(rFilter.Row, iColJahr).Value, "-")
For N = 1 To UBound(arrTeil) Step 2
Cells(rFilter.Row, iColMenge).Value = Cells(rFilter.Row, iColMenge).Value + CSng( _
arrTeil(N))
Next N
Next rFilter
End If
End Sub
Grüße,
Klaus M.vdT.

Anzeige
AW: Das Thema ...
23.04.2013 11:52:45
Schmitty
Oh man,
du bist ja schneller, als die Polizei erlaubt!!!
Vielen Dank für deine Mühen!!!
Gruß
Christian

Danke für die Rückmeldung! owT.
23.04.2013 11:53:44
Klaus
.
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige