[gelöst] calc vba wenn Datum gefunden dann ...
Moderator: Moderatoren
[gelöst] calc vba wenn Datum gefunden dann ...
Hallo,
ich bin zum ersten mal hier und bräuchte Hilfe bitte. (unabhängig von den Programmen!)
Es geht um eine Calc-Datei mit zwei Tabellen:
ich habe in Tabelle1!D5 ein Datum und in der Tabelle2!C1:C100 verschiedene Datums.
und ich habe zwei vba-Programme(programm1 und Programm2)
Wie kann ich das machen um folgendes zu erreichen:
wenn in Tabelle2!C1:C100 das gleiche Datum wie in Tabelle1!D5 gibt dann
Programm1 führen
ansonsten Programm2 führen
Ende
Danke im Voraus!
ich bin zum ersten mal hier und bräuchte Hilfe bitte. (unabhängig von den Programmen!)
Es geht um eine Calc-Datei mit zwei Tabellen:
ich habe in Tabelle1!D5 ein Datum und in der Tabelle2!C1:C100 verschiedene Datums.
und ich habe zwei vba-Programme(programm1 und Programm2)
Wie kann ich das machen um folgendes zu erreichen:
wenn in Tabelle2!C1:C100 das gleiche Datum wie in Tabelle1!D5 gibt dann
Programm1 führen
ansonsten Programm2 führen
Ende
Danke im Voraus!
Re: calc vba wenn Datum gefunden dann ...
Hallo Hennech,
nimm eine Hilfszelle zB "Tabelle1.E2" und ein einfaches =ZÄHLENWENN(Tabelle2.C1:C100;Tabelle1.D5) zum prüfen ob das Datum in der Liste mindestens einmal vorhanden ist
und den folgenden Code
nun musst du nur noch überlegen wie du das Makro starten möchtest
beim laden der Datei oder auf klick auf einen Button.
Viel Spaß
edit:
zwei ! durch . ersetzt
nimm eine Hilfszelle zB "Tabelle1.E2" und ein einfaches =ZÄHLENWENN(Tabelle2.C1:C100;Tabelle1.D5) zum prüfen ob das Datum in der Liste mindestens einmal vorhanden ist
und den folgenden Code
Code: Alles auswählen
Sub choicemakro
myDoc = thisComponent
mySheet = myDoc.sheets(0)
mycell = mysheet.getCellByPosition(4,1) ' =E2
check = mycell.value
if check >0 then
call Makro01
else
call Makro02
end if
End Sub
sub Makro01
print " gleiches DATUM in der Liste vorhanden "
end sub
sub Makro02
print " kein gleiches DATUM gefunden "
end sub
beim laden der Datei oder auf klick auf einen Button.
Viel Spaß
edit:
zwei ! durch . ersetzt
Zuletzt geändert von clag am Sa, 18.01.2014 06:35, insgesamt 1-mal geändert.
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: calc vba wenn Datum gefunden dann ...
Hallo Leute.
@clag
Wie soll denn die Formel in Calc funktionieren?
@hennech
In Calc wird so ein Zellbezug zu einer anderen Tabelle nicht geschrieben, und er wird auch nicht funktionieren. Richtig wäre:
Und nein! Das ist keine Haarspalterei, sondern ein essentieller extrem wichtiger Unterschied.
Hast Du wirklich in einer Calc-Datei Excel-Makros (VBA)?
Das sind sehr wichtige Fragen die Du unbedingt eindeutig beantworten musst. Und ich weise nicht umsonst darauf hin, denn nur bis zu einem gewissen Grad kann man unter bestimmten einfachen Bedingungen in Calc StarBasic mit VBA kombinieren. Aber ob das auf die Dauer gut geht, kann nicht garantiert werden. Hängt von der jeweiligen Situation ab. Aber die gleiche Kombination funktioniert in Excel bestimmt nicht.
Es wäre nicht verkehrt, wenn Du uns mitteilen würdest was Du mit deiner Datei denn nun genau machen willst. Genauso wichtig ist uns zu sagen ob die Datei nur in Calc, oder aber auch in Excel funktionieren soll. Denn wenn hier Lösungsvorschläge unterbreitet werden die in Calc via StarBasic funktionieren, so möchte ich dafür Wetten das dies NICHT in Excel funktioniert.
Gruß
balu
@clag
Sag mal mein lieber clag, hast Du denn gar nichts gelernt?clag hat geschrieben: nimm eine Hilfszelle zB "Tabelle1.E2" und ein einfaches =ZÄHLENWENN(Tabelle2!C1:C100;Tabelle1!D5)

Wie soll denn die Formel in Calc funktionieren?
@hennech
Das Du Hilfe brauchst versteh ich, aber den unterstrichenen Teil versteh ich überhaupt nicht. Was willst Du uns damit sagen?ich bin zum ersten mal hier und bräuchte Hilfe bitte. (unabhängig von den Programmen!)
Das ist eine sehr klare und eindeutige Aussage.Es geht um eine Calc-Datei mit zwei Tabellen:
Aber ab jetzt geht das Chaos los.ich habe in Tabelle1!D5 ein Datum und in der Tabelle2!C1:C100 verschiedene Datums.
In Calc wird so ein Zellbezug zu einer anderen Tabelle nicht geschrieben, und er wird auch nicht funktionieren. Richtig wäre:
Code: Alles auswählen
Tabelle1.D5
Tabelle2.C1:C100
Meinst Du das jetzt im ernst, oder hast Du dich nur falsch ausgedrückt?und ich habe zwei vba-Programme(programm1 und Programm2)
Hast Du wirklich in einer Calc-Datei Excel-Makros (VBA)?
Das sind sehr wichtige Fragen die Du unbedingt eindeutig beantworten musst. Und ich weise nicht umsonst darauf hin, denn nur bis zu einem gewissen Grad kann man unter bestimmten einfachen Bedingungen in Calc StarBasic mit VBA kombinieren. Aber ob das auf die Dauer gut geht, kann nicht garantiert werden. Hängt von der jeweiligen Situation ab. Aber die gleiche Kombination funktioniert in Excel bestimmt nicht.
Auch hier wieder die falsche Zellnotation, siehe oben.Wie kann ich das machen um folgendes zu erreichen:
wenn in Tabelle2!C1:C100 das gleiche Datum wie in Tabelle1!D5 gibt dann
Programm1 führen
ansonsten Programm2 führen
Ende
Es wäre nicht verkehrt, wenn Du uns mitteilen würdest was Du mit deiner Datei denn nun genau machen willst. Genauso wichtig ist uns zu sagen ob die Datei nur in Calc, oder aber auch in Excel funktionieren soll. Denn wenn hier Lösungsvorschläge unterbreitet werden die in Calc via StarBasic funktionieren, so möchte ich dafür Wetten das dies NICHT in Excel funktioniert.
Gruß
balu
Sei öfter mal ein Faultier, sag öfter mal "Ach was!" Dann kriegst du keinen Herzinfarkt, und hast ne menge Spass.
wehr rächtschraipfähler findet khan si behalden
wehr rächtschraipfähler findet khan si behalden

Re: calc vba wenn Datum gefunden dann ...
Moin Balu,
OMG welch Schande, ich habe hier einen "copy and paste" Fehler gemacht
und das böse ! nicht korrigiert und durch einen guten . ersetzt.
Das hol ich jetzt aber ganz schnell nach, damit mich ein Forums-Sheriff nicht auch noch in eine Calc-Zelle steckt
hey Balu guckst du mal unter deine Beiträge, was du da verkündest
OMG welch Schande, ich habe hier einen "copy and paste" Fehler gemacht
und das böse ! nicht korrigiert und durch einen guten . ersetzt.
Das hol ich jetzt aber ganz schnell nach, damit mich ein Forums-Sheriff nicht auch noch in eine Calc-Zelle steckt

hey Balu guckst du mal unter deine Beiträge, was du da verkündest
balu hat geschrieben:wehr rächtschraipfähler findet khan si behalden![]()
LG
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
clag
nutzt: WinXP SP3 / AOO 4.1.10 / Firefox
Re: calc vba wenn Datum gefunden dann ...
guten Morgen,
erstmal vielen lieben Dank für alle Autworten und das Ihr euch überhaupt Gedanken über mein Problme gemacht habt!
@Blau:

@clag: 1000 Dank, ich habe dein Vorschlag getestet es funktioniert aber ich habe festgestellt, dass ich eigentlich nur das Datum der letzten bentzten Spalte mit dem Datum von Heute vergleichen brauche.
(Mit dem Button will ich jeden Tag eine neue Spalte einfügen! Aber am selben Tag immer nur eine einzige neue Spalte einfügen, ansonsten wenn man den Button mehrmals am selben Tag verwendet,soll die gleiche bereits eingefügte Spalte überschreiben werden)! <== ich hoffe, es ist klar^^
Es geht eigentlich nur um eine einfache Sache (Kopieren/einfügen). Demzufolge habe ich das so gemacht (s. Makro)
ich habe folgendes in meinem Programm eingefügt :
und das ist das Ergebnis:
Also ich bedanke mich bei euch ud wünsche euch ein schönes WE!
NB: mein Beitrag kann geschlossen werden! Danke
hennech
erstmal vielen lieben Dank für alle Autworten und das Ihr euch überhaupt Gedanken über mein Problme gemacht habt!

@Blau:
das ist halt so wenn man nur mit Excel gearbeitet hat, da verwechselt man schnell allesbalu hat geschrieben: @clagSag mal mein lieber clag, hast Du denn gar nichts gelernt?clag hat geschrieben: nimm eine Hilfszelle zB "Tabelle1.E2" und ein einfaches =ZÄHLENWENN(Tabelle2!C1:C100;Tabelle1!D5)
Wie soll denn die Formel in Calc funktionieren?

Ich wollte nur die Vorgehensweise bzw. die Schreibweise wissen/kennenlernen, basteln wollte ich dann selberbalu hat geschrieben: @hennechDas Du Hilfe brauchst versteh ich, aber den unterstrichenen Teil versteh ich überhaupt nicht. Was willst Du uns damit sagen?ich bin zum ersten mal hier und bräuchte Hilfe bitte. (unabhängig von den Programmen!)

Danke für den Hinweis!balu hat geschrieben:Aber ab jetzt geht das Chaos los.ich habe in Tabelle1!D5 ein Datum und in der Tabelle2!C1:C100 verschiedene Datums.
In Calc wird so ein Zellbezug zu einer anderen Tabelle nicht geschrieben, und er wird auch nicht funktionieren. Richtig wäre:Und nein! Das ist keine Haarspalterei, sondern ein essentieller extrem wichtiger Unterschied.Code: Alles auswählen
Tabelle1.D5 Tabelle2.C1:C100

nur falsch ausgedrückt!!balu hat geschrieben:Meinst Du das jetzt im ernst, oder hast Du dich nur falsch ausgedrückt?und ich habe zwei vba-Programme(programm1 und Programm2)
Hast Du wirklich in einer Calc-Datei Excel-Makros (VBA)?
Das sind sehr wichtige Fragen die Du unbedingt eindeutig beantworten musst. Und ich weise nicht umsonst darauf hin, denn nur bis zu einem gewissen Grad kann man unter bestimmten einfachen Bedingungen in Calc StarBasic mit VBA kombinieren. Aber ob das auf die Dauer gut geht, kann nicht garantiert werden. Hängt von der jeweiligen Situation ab. Aber die gleiche Kombination funktioniert in Excel bestimmt nicht.
@clag: 1000 Dank, ich habe dein Vorschlag getestet es funktioniert aber ich habe festgestellt, dass ich eigentlich nur das Datum der letzten bentzten Spalte mit dem Datum von Heute vergleichen brauche.
(Mit dem Button will ich jeden Tag eine neue Spalte einfügen! Aber am selben Tag immer nur eine einzige neue Spalte einfügen, ansonsten wenn man den Button mehrmals am selben Tag verwendet,soll die gleiche bereits eingefügte Spalte überschreiben werden)! <== ich hoffe, es ist klar^^
Es geht eigentlich nur um eine einfache Sache (Kopieren/einfügen). Demzufolge habe ich das so gemacht (s. Makro)
ich habe folgendes in meinem Programm eingefügt :
Code: Alles auswählen
ocell = osheet.getcellbyposition(ncolumn,nrow)
if ocell.Value = datevalue(now) then
.
.
else
.
.
End if
Code: Alles auswählen
Sub MyCopyPaste
Dim Doc As Object
Dim Sheet As Object
Dim CellRangeAddress As New com.sun.star.table.CellRangeAddress
Dim CellAddress As New com.sun.star.table.CellAddress
Doc = ThisComponent
Sheet = Doc.Sheets(0)
oSheet = ThisComponent.Sheets.getByIndex(1)
oRows = oSheet.getRows(5)
CellRangeAddress.Sheet = 0
CellRangeAddress.StartColumn = 5
CellRangeAddress.StartRow = 2
CellRangeAddress.EndColumn = 5
CellRangeAddress.EndRow = 26
oRow = oRows.getByIndex(5)
oEmptyranges = oRow.queryEmptyCells 'this returns a collection of empty cell ranges
Count = oEmptyranges.Count
StartCol = oEmptyranges.RangeAddresses(Count-1).StartColumn 'the Start Column of the last empty
range in the row
ocell = osheet.getcellbyposition(StartCol -1,4)
if ocell.Value = datevalue(now) then
CellAddress.Sheet = 1
CellAddress.Column = StartCol-1
CellAddress.Row = 2
Sheet.copyRange(CellAddress, CellRangeAddress)
else
CellAddress.Sheet = 1
CellAddress.Column = StartCol +1
CellAddress.Row = 2
Sheet.copyRange(CellAddress, CellRangeAddress)
End if
End Sub
NB: mein Beitrag kann geschlossen werden! Danke
hennech
Re: calc vba wenn Datum gefunden dann ...
Es ist immer wieder gut zu erfahren, dass ein Problem gelöst wurde, eine Frage zufriedenstellen geklärt ist. Danke für deine Info!hennech hat geschrieben:NB: mein Beitrag kann geschlossen werden!
Die Kennzeichnung eines Themas als »gelöst« soll durch den Fragesteller selbst im „Self Service“-Verfahren erfolgen. Dazu wird der erste Beitrag des Themas mit einem Klick auf Ändern zur Bearbeitung geöffnet. Dem Betreff wird dann ein Hinweis wie »[gelöst]« oder »[geschlossen]« vorangestellt und der Vorgang mit einem Klick auf Absenden beendet. Und das war's dann auch schon.
Dieses Thema habe übrigens ich schon für dich markiert.
Gruß
lorbass