Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1964to1968
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

eigene datenmaske

eigene datenmaske
16.02.2024 11:39:48
Willi Meier
Hallo Fachleute,
ich gebe über eine eigene Datenmaske (Tabelle1) Daten in eine Datenbank (Tabelle2) ein. beim übertragen in die Datenbank
blockt ganz kurz das Eintragen in die Datenbank auf, das möchte ich aber vermeiden. Ich weiß, es gibt ein Befehl in VBA daß
das vermeidet. Leider finde ich den Beitrag im Internet nicht mehr. Ich würde mich freuen wenn mir einer von Euch hier helfen kann.
Vorab vielen Dank!
Willi Meier

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: eigene datenmaske
16.02.2024 11:42:46
UweD
Hallo


meinst du das?

am Anfang.
    Application.ScreenUpdating = False


einbauen

Setzt sich beim Makroende selbst zurück und muss nicht wieder eingeschaltet werden.

LG UweD
AW: eigene datenmaske
16.02.2024 16:19:04
Willi Meier
Hallo Leute, vielen Dank für eure schnelle Rückmeldung.
Der Befehl von Uwe hat nicht funktioniert, kann auch sein daß ich den Befehl anders platzieren muß.
Das Tutorial, in dem der Befehl erläutert wurde, finde ich vielleicht noch.
Ich habe mal meinen Code hier eingetragen. Die Feinheiten fehlen noch.
Vielleicht hat Jemand einen Tipp?
Mfg Willi

Sub SpeichernEinnahmen()
'Application.screeupdating = False

Dim Konto As String
Dim Datum As String
Dim Buchungstext As String
Dim Kategorie As String
Dim Info As String
Dim Betrag As Double
Dim aeu As String
Dim steuerrelevant As String

Konto = Range("E7")
Datum = Range("E5")
Buchungstext = Range("E9")
Kategorie = Range("E11")
Info = Range("E15")
Betrag = Range("E13")
steuerrelevant = Range("E17")
aeu = "Einnahmen"


Worksheets("Datenbank").Select
Worksheets("Datenbank").Range("A7").Select
If Worksheets("Datenbank").Range("A7").Offset(1, 0) > "" Then
Worksheets("Datenbank").Range("A7").End(xlDown).Select
End If

ActiveCell.Offset(1, 0).Select
ActiveCell.Offset(0, 0).Select
ActiveCell.Value = Konto
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Datum
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Buchungstext
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Kategorie
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Info
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = Betrag
ActiveCell.Offset(0, 1).Select
ActiveCell.Value = "Einnahmen"
ActiveCell.Offset(0, 2).Select
ActiveCell.Value = steuerrelevant

Worksheets("Einnahmen").Select
Range("e9") = ""
Range("e11") = ""
Range("e13") = ""
Range("e15") = ""
Range("G7") = ""
Range("e5").Select


End Sub

Anzeige
AW: eigene datenmaske
16.02.2024 16:37:06
Oberschlumpf
Hi Willi,

mein Tipp:
zeig doch nicht nur Code sondern per Upload Bsp-Dateien von Excel und deiner Datenbank und natürlich deinen Code!
Beide Dateien müssen natürlich in den richtigen Zeilen/Spalten genügend Bsp-Daten enthalten.

Ciao
Thorsten
AW: eigene datenmaske
16.02.2024 19:52:06
Willi Meier
Hallo Thorsten,
ich habe ein professionelles Haushaltsbuch. Die Datenerfassung wird da mit einem eigenem Fenster
AUSGABEN; EINNAHMEN und UMBUCHUNG erfasst.
Ich habe in Excel ein Programm ohne Eingabemaske gebastelt. Ich gebe die Daten Zeile für Zeile ein und
das geht viel schneller. Das Programm ist aufwendig. Anbei mein Hauptcode der jede Zeile/Zelle überprüft.
zB. Kontonummer und Datum wird von der oberen Zelle übernommen, Buchungstext wird mit einem dynamischen Dropdown
1-2 Buchstaben eingeben die restlichen daten werden mit sverweis gesucht. Mit Datenschnitt oder irgend einem Zelleintrag
wird gefiltert. Das Programm ist allerdings nur für den "Eigenbedarf" geschrieben.


Public Sub Worksheet_SelectionChange(ByVal Target As Range)
' ist der cursor in Spalte 9 (kumuliert) dann wird der Eintrag in "Betrag" ohne
' Formeln eingetragen

'stellt fest ob die aktive zeile kleiner als die aktuelle zeile ist
Target.Calculate

Dim letzte_Zeile As Integer
letzte_Zeile = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
If ActiveCell.Row() letzte_Zeile Then Exit Sub
Application.CutCopyMode = False

If Target.Column = 8 Then
If Target.HasFormula = True Then
Target.Value = Target.Value
End If
neuer_datensatz
End If
' Konto und Datum wird von der oberen Zelle kopiert
If Target.Column = 0 Or Target.Column > 2 Or Target.Row 3 Then Exit Sub
If ActiveCell = "" Then
Target.Value = Target.Offset(-1, 0)
End If

End Sub
Gr. Willi

Anzeige
AW: eigene datenmaske
16.02.2024 12:46:15
RPP63
Moin!
Wenn da kurz die Tabelle2 zu sehen ist, dann liegt es an Deinem Code.
Man kann es zwar (siehe Uwe) mittels Screenupdating ausschalten,
aber besser ist es aber allemal, Tabelle2 erst gar nicht (per Code) zu aktivieren.

Zeige doch mal den bisherigen Code, dann kommen auch Verbesserungsvorschläge.

Gruß Ralf
AW: eigene datenmaske
16.02.2024 15:17:48
Piet
Hallo

es gibt drei Methoden Daten von Sheet zu Sheet zu kopieren, OHNE die Sheets mit Select zu aktivieren!
Dann ploppt kein Sheet kurzfristig auf, das kopieren geht wesentlich schneller. Auch ohne ScreenUdating.
Wenn man viel kopiert ist ScreenUpdating = False auf jeden Fall empfehlendwert.

mfg Piet

'Daten kopieren OHNE Sheet Select !!

'Worksheets direkt angeben
Sub Daten_übertragen_1()
Worksheets("Tabelle2").Range("xx") = Worksheets("Tabelle1").Range("xx")
End Sub

'2x Set Methode
Sub Daten_übertragen_2()
Dim Tb1 As Worksheet, Tb2 As Worksheet
Set Tb1 = Worksheets("Tabelle1")
Set Tb2 = Worksheets("Tabelle2")
Tb2.Range("xx") = Tb1.Range("xx")
End Sub

'With Methode + Set Methode
Sub Daten_übertragen_2()
Dim Tb1 As Workshee
Set Tb1 = Worksheets("Tabelle1")
With Worksheets("Tabelle2")
.Range("xx") = Tb1.Range("xx")
End With
End Sub
Anzeige
AW: eigene datenmaske
16.02.2024 15:24:19
onur
"blockt ganz kurz das Eintragen in die Datenbank auf" ??? Was soll das denn bedeuten?
AW: eigene datenmaske
16.02.2024 16:25:09
Willi Meier
Hallo Leute, habe gerade festgestellt, daß ich ein Schreibfehler in der besagten Zeile habe.
Bekomme jetzt keine Fehlermeldung mehr, aber leichtes "Zucken" ist noch da.
Mfg
Willi
AW: eigene datenmaske
16.02.2024 17:23:19
Yal
Hallo Willi,

das Flakern kommt von den "Select". Diese erscheinen nur, weil Du den Makrorekorder verwendet hast (sehr gut), und jedesmal eine Zelle ausgewählt, bevor etwas gemacht wurde. Wenn aber VBA die Sache erledigt, kann die Aktion direkt auf der Zielzelle gemacht werden, ohne diese zu selektieren.

Es sieht dann so aus. Ich hoffe, Du erkennst deinen Code:
Sub SpeichernEinnahmen()

Dim wsQ As Worksheet ' Q wie Quelle

Application.ScreenUpdating = False
Application.EnableEvents = False

Set wsQ = Worksheets("Einnahmen")
With Worksheets("Datenbank").Cells(Rows.Count, "A").End(xlUp).Offset(1).EntireRow
'A1, B1, usw. sind relative Adressierung eine einzelne Zeile (EntireRow)
.Range("A1").Value = wsQ.Range("E7").Value 'Konto
.Range("B1").Value = wsQ.Range("E5").Value 'Datum
.Range("C1").Value = wsQ.Range("E9").Value 'Buchungstext
.Range("D1").Value = wsQ.Range("E11").Value 'Kategorie
.Range("E1").Value = wsQ.Range("E15").Value 'Info
.Range("F1").Value = wsQ.Range("E13").Value 'Betrag
.Range("G1").Value = "Einnahme" 'aeu
.Range("I1").Value = wsQ.Range("E17").Value 'steuerrelevant
End With

wsQ.Range("E5, E7, E9, E11, E13, E15").ClearContents
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub


VG
Yal
Anzeige
AW: eigene datenmaske
16.02.2024 19:10:45
Willi Meier
Hallo Yal,
ich weiß, daß mein Code nicht optimal ist und noch überarbeitet werden muß.
Ich werde mal Deinen Code einsetzen. Ich bin bei diesem Programm im Übungsmodus.
Vielen Dank für Deine Hilfe.
Mfg
Willi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige