Antworten auf deine Fragen:
Neues Thema erstellen

Antworten zum Thema „Zählerbutton soll je nach KW in Feld schreiben“

proximate

Nicht mehr ganz neu hier

Hallo miteinander,
Ich habe mir mit Hilfe im Internet ein kleines Statistik Tool für unsere Arbeit geschrieben.
Aktuelle Version beinhaltet pro Monat Tabellenseiten mit Buttons +1 für den jeweiligen eingangskanal.


Dies funktioniert so, wird dann auf eine Master Tabelle übernommen (übersicht)
Die Funktion der Buttons:
Public Sub PPEMail_Click()
Range("M8").Value = Range("M8").Value + 1
End Sub

Die Pages mit den Buttons sind ok - nun möchte ich allerdings das der Button +1 nicht nur in den Spalten rechts +1 zählt sondern auch in einer anderen Tabellenseite (nach KW's) +1 zählt.

Also beim klick auf den Button : *Aktuelle KW --> Dementsprechende Spalte (ab spalte B zählen die KW's hoch) Feld +1


KW identifizieren: =KÜRZEN((HEUTE()-WOCHENTAG(HEUTE();2)-DATUM(JAHR(HEUTE()+4-WOCHENTAG(HEUTE();2));1;-10))/7)

Aber weiter komm ich leider nicht... irgendwie blockierts --> Nochmal als Info, bin absoluter Anfänger :) (aber leider trotzdem noch derjenige mit dem meisten KnowHow)

Könnt ihr mir weiterhelfen?

Grüsse
Proxi
 

Excel

Haui76

Nicht mehr ganz neu hier

Hallo proximate,

Um bei deinem Ansatz zu bleiben, würde ich als erstes mal deine "KW identifizieren" Funktion mit der Excel eigenen Funktion Kalenderwoche() bzw WEEKNUM() tauschen.

KW := Kalenderwoche(Heute();2)
Und dann noch ein kleiner Such- und Änderungsalgorithmus der etwa so aussehen kann.

Set FindKW = ActiveSheet.Range("A1:X1").Find(Kalenderwoche(Heute();2))
Set FindProd = ActiveSheet.Range("A1:X1").Find("Product")
if Not FindKW Is Nothing then

if Not FindProd Is Nothing then
x=FindIt.column
y=FindProd.row

Range(Cells(x,y)).Value = Range(Cells(x,y).Value + 1

end if
end if

Hab das ganze jetzt nicht getested, aber die Basis müsste stimmen.
 

proximate

Nicht mehr ganz neu hier

Hallo MikeP
Schonmal vielen herzlichen Dank für die Richtung, hab das ganze mal so übernommen...
Allerdings: der Compiler haut mir einen Syntaxfehler um die Ohren für die Zeile :
Set FindKW = ActiveSheet.Range("B1:X1").Find(KALENDERWOCHE(HEUTE();2))

er motzt über das ";" in der Formel...

Ich hab mal Folgendes Versucht :
Sub Rechteck1_Klicken()
Set FindKW = ActiveSheet.Range("B1:AG1").Find(KALENDERWOCHE(HEUTE();2)) // Alternativ .Find("30")
Set FindProd = ActiveSheet.Range("A2:A12").Find("TV App")
If Not FindKW Is Nothing Then

If Not FindProd Is Nothing Then
x = FindIt.Column //->FindIt? nicht FindKW? -> auch angepasst --> NOK
y = FindProd.Row​

Range(Cells(x, y)).Value = Range(Cells(x, y)).Value + 1
End If​
End If
End Sub
B1 bis AG1 = Kalenderwochen in Ganzzahlen
A2 bis A12 = Produkte resp. Themenbereiche

Aktuell verstehe ich was da passieren soll... aber - ich werde mit einem Compilerfehler nach dem anderen Bombardiert die kleinen Syntaxfehler habe ich korrigiert und die korrekten Zellangaben hinterlegt (glaube ich) :)
 

proximate

Nicht mehr ganz neu hier

Die Methode 'Range' für das Objekt '_Global' ist fehlgeschlagen....

Sub Rechteck1_Klicken()
Set FindKW = ActiveSheet.Range("B1:AG1").Find("30")
Set FindProd = ActiveSheet.Range("A1:A12").Find("TV App")
If Not FindKW Is Nothing Then

If Not FindProd Is Nothing Then
x = FindKW.Column
y = FindProd.Row

Range(Cells(x, y)).Value = Range(Cells(x, y)).Value + 1
End If
End If
End Sub


äh genau XD
Hilfe...
 

Haui76

Nicht mehr ganz neu hier

VBA ist doch schon etwas eingestaubt ....

Private Sub CommandButton1_Click()
Set FindKW = ActiveSheet.Range("B1:AG1").Find(WorksheetFunction.WeekNum(Now(), 2))
Set FindProd = ActiveSheet.Range("A1:A12").Find("TV App")
If Not FindKW Is Nothing Then
If Not FindProd Is Nothing Then
x = FindProd.Row
y = FindKW.Column
Cells(x,y).Value = Cells(x,y).Value + 1

End If
End If
End Sub
 

proximate

Nicht mehr ganz neu hier

Nice - läuft - Danke Danke Danke Danke :)

Button befindet sich jedoch auf einem Anderen Sheet als die "Zähler"
Die Buttons sind im Sheet Tabelle 1
Die Daten (für die Wochenübersicht) im Sheet Tabelle2

Wenn ich nun :
Set FindKW = Worksheets("Tabelle2").Range("B1:AG1").Find(WorksheetFunction.WeekNum(Now(), 2))
Set FindProd = Worksheets("Tabelle2").Range("A1:A12").Find("TV App")

Setze so erhalte ich den Fehler: "Index ausserhalb des gültigen Bereichs"
Ich habe nun noch versucht Sub auf Public Sub angepasst... leider auch erfolglos

Mit dem Button im Sheet 1 und den KW's / Products eingetragen läufts schonmal, nur eben leider im falschen Sheet :)

noch eine letzte Hilfestellung?
 

Haui76

Nicht mehr ganz neu hier

Einfach den ActiveSheet Teil von ActiveSheet.Range ändern auf den Wert der im VBA Editor neben der Tabelle1 in Klammern steht.
Bei mir ist das Sheet1 (Tabelle1) mit dem Button und Sheet2 (Tabelle 2) mit der Auswertung.

Set FindKW = Sheet2.Range("B1:AG1").Find(WorksheetFunction.WeekNum(Now(), 2))
Set FindProd = Sheet2.Range("A1:A12").Find("TV App")

und natürlich beim Zähler das Gleiche.

Sheet2.Cells(x, y).Value = Sheet2.Cells(x, y).Value + 1
 

proximate

Nicht mehr ganz neu hier

Tip Top :)
Aer kleine Korrektur --> Nicht das was in der Klammer steht sondern das vor der Klammer (nicht der Anzeigename)
Bei mir wäre es im ersten Szenario "Tabelle2(ServiceRequests)"
Funktionierender Code Snipped:


Public Sub Rechteck2_Klicken()
Set FindKW = Tabelle2.Range("B1:AG1").Find(WorksheetFunction.WeekNum(Now(), 2))
Set FindProd = Tabelle2.Range("A1:A12").Find("TV App")
If Not FindKW Is Nothing Then
If Not FindProd Is Nothing Then


x = FindProd.Row
y = FindKW.Column
Tabelle2.Cells(x, y).Value = Tabelle2.Cells(x, y).Value + 1

End If
End If
End Sub

Nochmals vielen Herzlichen Dank für deine schnelle Hilfe MikeP
Ohne dich hätt ich das bestimmt nicht hinbekommen in den kommenden Wochen :p
 

proximate

Nicht mehr ganz neu hier

Gerade noch jemand eine Idee wie ich mit dem Script oben nicht "nur" die Kalenderwoche sondern Monat erhalte? resp. nochmals auf das Selbe Ziel Sheet (weiter unten) noch die Monatsübersicht habe?

Set FindMonth = Tabelle2.Range("B2:AG2").Find(WorksheetFunction.=Month(now())

scheint ja *offensichtlich* nicht zu funktionieren

Ich könnte sonst auch damit leben wenn ich =Month(now()) in eine Zelle schreibe und in VB den Wert aus der Zelle hole irgendwas mit Cells(A,1).Value aber ich komm da auf keinen gründen Zweig

Dachte ich krieg das hin wenn ich das Problem mit den Wochen geschafft habe aber neeee
mit den WorksheetFunctionObjectMembers Liste habe ich leider auch nichts passendes gefunden.

Any Idea?
 

Haui76

Nicht mehr ganz neu hier

Nicht so weit denken.
Month() ist bereits eine Datums Funktion im VBA. Es reicht wenn du

Set FindMonth = Tabelle2.Range("B2:AG2").Find(Month(now()))

verwendest.
 
Bilder bitte hier hochladen und danach über das Bild-Icon (Direktlink vorher kopieren) platzieren.
Antworten auf deine Fragen:
Neues Thema erstellen

Willkommen auf PSD-Tutorials.de

In unseren Foren vernetzt du dich mit anderen Personen, um dich rund um die Themen Fotografie, Grafik, Gestaltung, Bildbearbeitung und 3D auszutauschen. Außerdem schalten wir für dich regelmäßig kostenlose Inhalte frei. Liebe Grüße senden dir die PSD-Gründer Stefan und Matthias Petri aus Waren an der Müritz. Hier erfährst du mehr über uns.

Stefan und Matthias Petri von PSD-Tutorials.de

Nächster neuer Gratisinhalt

03
Stunden
:
:
25
Minuten
:
:
19
Sekunden

Neueste Themen & Antworten

Flatrate für Tutorials, Assets, Vorlagen

Statistik des Forums

Themen
175.189
Beiträge
2.582.075
Mitglieder
67.258
Neuestes Mitglied
cue98
Oben