VBA – die besten Beiträge

Excel VBA Taschenrechner programmieren, Komma geht nicht?

Hey :) kann mir da jemand weiterhelfen. ich weiß nicht ganz wie ich es schaffe, dass das Komma richtig berechnet wird und nicht nur so angezeigt wird. bin über jede hilfe dankbar. 1 stunde hab ich noch zeit bevor ich die hausübung hochladen muss x_x nächstes mal schieb ichs lieber nicht die ganzen ferien auf

Option Explicit Dim Zahl1 As Integer Dim Zahl2 As Integer Dim Operator As String Dim zähler As Long

Private Sub cb0_Click() Me.tbanzeige = Me.tbanzeige & "0" End Sub

Private Sub cb1_Click() Me.tbanzeige = Me.tbanzeige & "1" End Sub

Private Sub cb2_Click() Me.tbanzeige = Me.tbanzeige & "2" End Sub

Private Sub cb3_Click() Me.tbanzeige = Me.tbanzeige & "3" End Sub

Private Sub cb4_Click() Me.tbanzeige = Me.tbanzeige & "4" End Sub

Private Sub cb5_Click() Me.tbanzeige = Me.tbanzeige & "5" End Sub

Private Sub cb6_Click() Me.tbanzeige = Me.tbanzeige & "6" End Sub

Private Sub cb7_Click() Me.tbanzeige = Me.tbanzeige & "7" End Sub

Private Sub cb8_Click() Me.tbanzeige = Me.tbanzeige & "8" End Sub

Private Sub cb9_Click() Me.tbanzeige = Me.tbanzeige & "9" End Sub

Private Sub cbdurch_Click() Zahl1 = Me.tbanzeige.Text Operator = "/" Me.tbanzeige.Text = "" End Sub

Private Sub cbend_Click() End End Sub

Private Sub cbhae_Click() Me.tbanzeige = Me.tbanzeige & "Gib doch endlich eine Rechnung ein" End Sub

Private Sub cbist_Click() Zahl2 = Me.tbanzeige.Text If Operator = "+" Then Me.tbanzeige.Text = Zahl1 + Zahl2 ElseIf Operator = "-" Then Me.tbanzeige.Text = Zahl1 - Zahl2 ElseIf Operator = "*" Then Me.tbanzeige.Text = Zahl1 * Zahl2 ElseIf Operator = "/" Then Me.tbanzeige.Text = Zahl1 / Zahl2 End If

Operator = "="

End Sub

Private Sub cblöschen_Click() Me.cblöschen = "" End Sub

Private Sub L_Text_Click()

End Sub

Private Sub cbkomma_Click() Me.tbanzeige = Me.tbanzeige & "," End Sub

Private Sub cbloeschen_Click() Me.tbanzeige.Text = ""

End Sub

Private Sub cbmal_Click() Zahl1 = Me.tbanzeige.Text Operator = "*" Me.tbanzeige.Text = "" End Sub

Private Sub cbminus_Click() Zahl1 = Me.tbanzeige.Text Operator = "-" Me.tbanzeige.Text = "" End Sub

Private Sub cbplus_Click() Zahl1 = Me.tbanzeige.Text Operator = "+" Me.tbanzeige.Text = "" End Sub

Private Sub CommandButton1_Click() Userform1.Show End Sub End Sub

Private Sub CommandButton2_Click()

End Sub

Private Sub cbPrimzahl_Click() Zahl1 = Me.tbanzeige.Text Me.tbanzeige = "ist eine Primzahl"

For zähler = 2 To Sqr(Abs(Zahl1)) Me.tbanzeige = "ist eine Primzahl" If Abs(Zahl1) Mod zähler = 0 Then Me.tbanzeige = "ist keine Primzahl"

Exit For End If

Next zähler

End Sub

Private Sub UserForm_Click()

End Sub

programmieren, VBA

Täglicher automatisierter Vergleich zweier csv Dateien?

Hallo,

da ich leider nicht alle technischen Begriffe richtig kenne und deshalb evtl. hier falsch verwende bereits vorab die Bitte um Entschuldigung.

Ich bekomme täglich eine csv Datei mit Daten aktueller, also zum heutigen Tag angestellten, Mitarbeitern. Hier steht bspsweise Personalnummer (eindeutiger Schlüssel), Nachname, Vorname,Eintrittsdatum und Austrittsdatum (Achtung: Das Austrittsdatum stimmt leider nicht immer). Zur Veranschaulichung die Datumsangaben mal weggelassen.

...

124514; Müller; Jonas;

231423; Fischer, Joachim;

423313; Haupt, Christian;

...

Sobald ein Mitarbeiter nicht mehr aktiv ist (also aus der Firma ausgetreten ist) wird der Datensatz am folgenden Tag auch nicht mehr übergeben (kommt also in der aktuellen csv Datei nichtmehr vor).

Es würde also am Folgetag die csv folgendermaßen aussehen, wenn Müller das Unternehmen verlassen hat und Newbie beispielsweise neu angefangen hat. Die Neueintritte müssen nicht abgefangen werden, wollte ich nur als Info dazusagen, dass diese dann zusätzlich in der neuen Datei vorhanden sind. Es geht ausschließlich um die Austritte, also die Mitarbeiter die in Vortagsdatei vorkamen, jetzt in tagesaktuellen aber nicht mehr vorkommen.

...

231423; Fischer, Joachim;

423313; Haupt, Christian;

599999; Newbie, Franziska;

...

Da das Austrittsdatum, welches auch mitgeliefert wird, leider teilweise nicht korrekt ist, kann ich mich nicht auf dieses Feld verlassen und irgendwie danach gehen. Auch haben beispielsweise unbefristete Mitarbeiter hier keinen Eintrag.

Ich bin nun auf der Suche nach einer Möglichkeit, wie ich die täglichen Austritte abfangen kann, also die Differenz zwischen mitgelieferten Daten der aktuellen Datei gegenüber der zum Vortag vergleichen kann. Dies sollte jeden Tag automatisiert funktioniert (durch einen Windows Dienst?)

Meine Idee war, dass ich diese beiden csv Dateien Datei H (Heute, im Beispiel oben die Datei mit Newbie) und Datei H-1 (gestern, Datei mit Müller) täglich vergleichen lassen und mir die Austritte jeweils in eine extra Datei, egal ob csv oder Excel, ausgeben lasse, sodass ich am Ende jeden Monats alle Austritte nochmal überprüfen kann.

Im obrigen Beispiel sollte dann beispielsweise der Datensatz zu Herrn Müller in eine Datei übergeben werden inkl den mitgelieferten Informationen wie Eintrittsdatum und Co. und wenn möglich dem aktuellen Tag (oder Zeitpunkt/aktueller Zeitstempel, damit nachvollzogen werden kann, wann genau dieser Mitarbeiter ausgetreten ist)

Leider fehlt mir jede technische Idee, wie ich sowas am schlausten umsetze und technisch realisiere. Hierfür wäre ich euch sehr über eure Ideen dankbar! Ich will ungern zunächst in eine komplett falsche Richtung laufen und danach bemerken, dass dies mir diesem System nicht umsetzbar ist.

Da dies wohl meine Mammutsaufgabe in meinem Praktikum sein wird, bin ich demjenigen, der sich hier die Zeit nimmt, mir bei der Lösungsfindung zu helfen, natürlich sehr, sehr dankbar! Vielen dank!

Microsoft Excel, programmieren, Makro, VBA, skript, csv, PowerShell

Wie durchsuche ich meine Excel Datei nach bestimmten Wörtern pro Spalte, um bei der Dateneingabe und der Suche nach der richtigen Excelzeile Zeit zu sparen?

Meine Datentabllen wachsen und wachsen. Dennoch möchte ich die gesuchte Excel Zeile möglichst schnell finden.

Ich hatte hierfür schonmal eine Suchzeile, inder mir die Zeile mit dem Wert ausgegeben wird, welche ich für die erste Spalte als Vergleich gesucht habe.


=WENNFEHLER(INDEX($A$2:$Z$4400;VERGLEICH($AC$4;$A$2:$A$4400;0);VERGLEICH(AE$2;$A$1:$Z$1;0));"Gib in AC4 einen Wort ein!")

Also kurz erklärt, In AC4 gibt man den gesuchten Wortlaut an. In AE2 ist die varilable Beschriftung der zu durchsuchenden Spalte.

Nun möchte ich, dass in der ersten zu durchsuchenden Spalte (das Wort wird in AC4 angegeben) nach dem Wort auch innerhalb der Zelle gesucht wird. Eignet sich zB für Doppelnamen und man nur nach einem Suchen kann, weil der zweite im Schreiben nicht erwähnt ist. Es sollte ein Treffen mit dem vollständigen Inhalt der gefundenen Zelle ausgegeben werden.

Die darauf folgende Formel rechts nebendran ließt jetzt aus Zelle AC5 einen weiteren Wortteil heraus, welcher in der gleichen Zeile existieren muss wie der Wortteil aus AC4. Somit muss durch die Eingabe in Zelle AC5 (falls FALSCH) die Tabelle weiter durchsucht werden nach dem gleichen Prinzip.

Am Ende der Suchspalte ist dann ein variabler Hyperlink der mich direkt zur passenden Zeile führt, nachden ich bestätigen kann, dass es bei den angezeigten Angaben sich um den richtigen Datenzeilensatz handelt.

Theoretisch gelaube ich schon, dass das mit Excel möglich ist. Bloß ich weiß es einfach nicht :(

Vielen Lieben Dank Für Deine Hilfe !!!

Diese Paar Codezeilen würden mir Stunden an Arbeit in Zukunft sparen :)

Microsoft Excel, Daten, Makro, VBA, Suchmaschine, Analyse, Tabelle

Meistgelesene Beiträge zum Thema VBA