probiert mal, die Datei in open office zu oeffnen. Wenn du Glück hast, wird der Passwortschutz dann ignoriert. Es kann sein, dass der Code remarked ist, aber man kommt wenigstens ran, kann sich dann alles in einen Texteditor kopieren und das "rem" entfernen. Dann wieder in eine neue Excel Datei einfügen.

bei Addins, wie das eurokonvert tool von Microsoft klappt das.

...zur Antwort

Als Quick &/ Dirty Lösung einfach statt dem Rückgabewert der Inputbox, den verweis auf das Zahlenfeld. Die Datentypen würde ich auch sauberer machen - aber so wirds gehen... (- ohne den Sinn dieser Routine zu hinterfragen)

Private Sub Befehl36_Click()

  Dim lngI    As Long

  Dim lngIMax   As Long

  Dim strEingabe As String

  

  DoCmd.RunCommand acCmdSelectRecord

  DoCmd.RunCommand acCmdCopy

  strEingabe = [Feldname]

  'Benutzereingabe wurde abgebrochen

  If StrPtr(strEingabe) = 0 Then Exit Sub

  lngIMax = Val(strEingabe) - 1

  For lngI = 1 To lngIMax

    DoCmd.RunCommand acCmdPasteAppend

  Next lngI

End Sub

...zur Antwort

Hier kommt es darauf an, ob Du die Formularsteuerelemente verwendest, oder die Active-X Controls. Die Formularsteuerelemente kannst Du nicht ansteuern - dies geht nur bei den Active-X Controls.

Wenn Du ein solches Objekt eingefügt hast, kannst Du es auch doppelklicken, oder rechte Maus und dann Ereignis wählen. Dann bist Du in der Standardmethode, wie z.B. OnClick bei der Befehlsschaltfläche. Die Elemente kannst Du immer mit Objektname.Eigenschaft/Methode ansprechen.

Also Label1.Caption="Test"

...zur Antwort

Ja, geht, den sgn. Startup-Screen zu ändern. Du musst ein BMP im selben Ordner haben, wie die Datenbankdatei. Beispiel: Deine Datenbankdatei heisst "Personal.accdb", dann musst Du eine "Personal.bmp" als gewünschten Startup-Screen im selben Ordner haben

...zur Antwort

Also man kann ueber Chr(Zahl) ASCII Zeichen anzeigen.

"Dies ist ein" & chr(34) zeigt dann Dies ist ein " an. Also wie gesagt ueber die chr() Funktion kann man Zeichen anzeigen. Ob das Zeichen dabei ist, das du suchst, musst du einmal recherchieren.

...zur Antwort

Man kann auch zu Beginn einen usernamen abfragen - also eine kleine Benutzerverwaltung einbauen. Dann kann man beim Öffnen eines Formulars die Eigenschaften beliebig setzen, wie z.B. allowedits=false / true, etc...

...zur Antwort

Also wenn das so, oder so ähnlich da steht, muß es klappen. Evtl. sind die Sicherheitseinstellungen noch anzupassen, bzw. die Mappe in einen vertrauenswürdigen Speicherort zu schieben.

Private Sub Workbook_Open()

  Call Quizstarten

End Sub

Ansonsten teste doch mal Schritt für Schritt.

Probiere mal das, um zu sehen, ob das Ereignis überhaupt ausgelöst wird:

Private Sub Workbook_Open()

Msgbox "Arbeitsmappen wurde geöffnet"

End Sub

...zur Antwort

Den Aufruf des Quiz/Prozedur bei der Methode "Workbook" - "Open" einfügen. Also im Projektexplorer auf "Diese Arbeitsmappe" doppelklicken und dann die Methode Open auswählen.

Also wichtig ist, den Code an der richtigen Stelle einzufügen - also im Klassenmodul der Arbeitsmappe - deshalb Doppelklick auf "Diese Arbeitsmappe"

...zur Antwort

Hallo,

hier ein codeschnipsel

Sub CreateAfile

   Set fs = CreateObject("Scripting.FileSystemObject")

   Set a = fs.CreateTextFile("c:\testfile.txt", True)

   a.WriteLine("This is a test.")

   a.Close

End Sub

das, was du an Text uebergibst kann ja auch ein Variablen Inhalt sein.

...zur Antwort

puh, das wird nicht einfach, die Datenbank zu reparieren, aber es geht. Zunächst brauchst die die blaue Zulassungskarte vom Hersteller. Wenn du die unten rechts dran hältst, öffnest du die Datenbank. Nun kannst du mit den 2 Euro Münzen, je nach Anzahl, zum entsprechenden Menüpunkt zur Wartung gelangen. Wenn du bei dem richtigen Punkt angelangt bist, musst du über die Reihenfolge der 1 Euro Münzen den korrekten Trigger fuer die Indizierung einstellen. Wenn das passt, dann die Einstellungen unten links mit der gelben Zulassungskarte abschließen. Dann sollte es wieder laufen.

...zur Antwort

Also am einfachsten kann man das mit der modulo Funktion testen - also Restwertdivision. Wenn beim Dividieren durch Zwei der Restwert =0 ist, ist die Zahl gerade:

If Zahl Mod 2 = 0 Then Call MsgBox ("eine gerade Zahl", vbInformation)

...zur Antwort

Eine Range besteht doch immer aus einer Adresse. Hier sollen Spalten gelöscht werden. also: dl.columns("a:t").delete

...zur Antwort

ggf einmal mit "" probieren.

Bsp:

If Sheets("XY").Cells(i,12) <>"" then
....
end if

...zur Antwort

Also auch wenn man das mit VBA hinbekommen sollte, wird man dies nicht GoBD konform hinbekommen und bei einer Steuerprüfung Probleme bekommen.

Am einfachsten bekommt man das natürlich mit "Worksheetfunction.Max(...)" hin. Hier kann man als Argument dann die Spalte mit den bereits vergebenen Rechnungsnummern übergeben. Die neue Rechnungsnummer ist dann das Ergebnis aus der Max Funktion + 1.

Um eine manuelle Änderung dann zu verhindern, würde ich in der Tabelle dann mit der "ScrollArea" arbeiten. Diese also per VBA für das Sheet setzen (Worksheets("Blattname").ScrollArea="$A$1" - ich müsste nochmal genau schauen, wie es geschrieben wird - denke aber, das stimmt so.) . Dann ist also das Tabellenblatt per ScrollArea auf die Bearbeitung für Zelle A1 beschränkt.

ggf doch mal mit Access probieren - hier bietet sich das AutoWert Feld als Rechnungsnummer an.

Oder einfach ein Sage Abo, oder Ähnliches für ein paar EUR im Monat buchen - dann ist man alle Sorgen los.

...zur Antwort

Ja genau - jetzt wird die Formatierung für alle Zellen durchgeführt.

Grundsätzlich immer auf Select und Activate verzichten. Alles, was man sieht, ist ein Objekt und kann eindeutig identifiziert werden.

Also man könnte z.B. schreiben:

With ActiveSheet.Cells(13,2).Font
- jetzt hier die ganzen Formatierungen
End With

Und wenn Du die Zelle B13 (in der Cells Schreibweise ist das die 13te Zeile und 2te Spalte - deshalb Cells(13,2) ) aus einem anderen Sheet formatieren willst, ist es egal, wo Du stehst, dann benennst Du einfach das Sheet, Beispiel:

With Worksheets("Blattname").Cells(13,2).Font
...
End With

...zur Antwort

Eine Sub kann man z.B. einfach mit F5 ausführen - eine Function hingegen muß man aufrufen. Z.B. im Direktbereich mit "Call Test", oder auch einfach nur "Test" eingeben, da keine Argumente vorhanden sind.

Die Wahl wäre, es hier bei der Prozedur zu belassen, wenn einfach Zellen geändert werden sollen. Funktionen nutzt man, wenn man en Ergebnis zurückbekommen möchte.

...zur Antwort

ggf einmal für jedes Tabellenblatt in den Druckereinstellungen festlegen, dass es auf eine Seitenbreite skaliert werden soll.

...zur Antwort

Die Meldung besagt, dass das was Du abfragst vom Datentyp nicht mit den Datentyp(en) der zugrunde liegenden Tabelle übereinstimmt.

Z.B. Fragst Du im Kriterium die Stations_ID als Text ab - wahrscheinlich ist dies aber der Primärschlüssel - also eine Zahl und damit LongInteger. Somit müssten im Kriterium die zwei Hochkomma vor und hinter der 102 weg.

ggf müsste beim Datum - zumindest in Access - auch noch Rauten (#) um das datum herum.

Probier diese Abfrage doch einfach einmal im Access Abfragegenerator und schalte dann auf SQL Ansicht um

vg, Armin

...zur Antwort

Im Übrigen, so wie Hannes62a schreibt, stimmen die Variablennamen nicht ueberein. Dies zuerst in Ordnung bringen.

Dann ist die Funktion int() auch nicht korrekt. Int liefert ja nur den ganzzahligen Teil einer Zahl. Also int(33.6)=33. Aber Du willst ja pruefen, ob es eine Dezimalzahl ist.

Deshalb bringt es auch nichts, wie oben gepostet, wenn man die Bedingung mit int umbaut. Die Variable Zahl ist ja der Rückgabewert der Inputbox. Wenn das also Text ist, dann kracht es bei der int Funktion. Deshalb grundsaetzlich erstmal pruefen, wie weiter oben beschrieben n, ob der Ausdruck numerisch ist.

Wenn ja, dann geht es weiter, ansonsten die Meldung.

Dann ist auch der Ansatz mit dem Verglich <> gut anzuwenden

Vg

...zur Antwort

Ich wuerde zuerst pruefen, ob es ueberhaupt ein numerischer Ausdruck ist, also mit isnumeric. Wenn true zurueck gegeben wird, ist es damit aber immernich keine zahl, sindern nur ein numerischer Ausdruck, da inputbox ja string zurueck gibt.

Also, wenn ja, dann erstmal Typ konvertieren, alao mit cdbl(zahl). Jetzt ist der ausdruck eine zahl und kann weitergeprueft werden.

Ansonsten kracht es bei text bei int(zahl)

Heist also zuerst einmal

If isnumeric(zahl) =false then

Msgbox...

Goto...

End if

Hier jetzt weiter mit den anderen Prüfungen

Gruss, Armin

...zur Antwort