Anzeige
Archiv - Navigation
732to736
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
732to736
732to736
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mappe an den Rechner binden....

Mappe an den Rechner binden....
Joachim
Hallo,
ich möchte eine Mappe an den Rechner binden.
Soll heißen - das beim ersten Start der Parameter der Festplatte in ein Tabellenblatt eingetragen wird und beim jedem erneuten Start wird dieser Eintrag geprüft. Wenn Übereinstimmung, dann öffnet sich die Mappe ansonsten Abbruch.
Außerdem soll das aktivieren der Makros erzwungen werden.
Matthias G - hat mir bei einer anderen Mappe schon einmal ähnliches gebaut.
Mir gelingt es aber nicht diese Funktion in diese neue Mappe zu übertragen.
Kann mir jemand dabei helfen?
Gruß
Joachim
AW: Mappe an den Rechner binden....
17.02.2006 17:50:13
Victor
Hey,
ist in minutenschnelle geknackt, also vergebene Mühe.
Grüße Victor
AW: nimm Original .. OK - aber Probs.
18.02.2006 16:17:08
Joachim
Hallo,
ja das habe ich nun genommen und mit in den Code implentiert.
Ich bekomme aber bei den folgenden Einträgen Fehler.
Kann jemand etwas damit anfangen und mir ggf. eine Lösung nennen?
______________________________________________________________________

Private Sub Workbook_Activate()
Application.Calculation = xlCalculationManual   ' !!!!!!!!!!!! Hiermit gibt es ein Problem
Application.OnKey "^{F12}", "AdminMode"
End Sub


Private Sub Workbook_Deactivate()
Application.Calculation = xlCalculationAutomatic  ' !!!!!!!!!!!! Hiermit gibt es ein Problem
Application.OnKey "^{F12}"
____________________________________________________________________
Gruß
Joachim

Anzeige
AW: nimm Original... Hab ich doch es klappt nicht.
18.02.2006 17:09:09
Joachim
Hallo,
also - ich krieg es nicht hin....
Lade die Mappe mal mit hoch - vielleicht kann jemand mal hineinschaun.
https://www.herber.de/bbs/user/31183.zip
Die Sache läuft bis auf die -sogenannte Lizensierung ;-) - einwandfrei.
Doch beim Hinzufügen dieser Funktion kommt bei mir doch einiges durcheinander.
Der gesamte Bereich der Datenübertragung in die andere Mappe läuft - kein Problem.
Die farbige Markierung der aktiven Zellen läuft auch - kein Problem.
Die Sichtbarkeit des Blattes bei deaktivierten Makros --- Fehlanzeige..
Das Aus- /Einschalten des Menüpunktes Einfügen --- Fehlanzeige..
Der Aufruf des Makros Strg-F12 - AdminMode --- Fehlanzeige..
Help .................
Gruß
Joachim
Anzeige
AW: Mappe an den Rechner binden....
19.02.2006 13:59:29
Josef
Hallo Joachim!
https://www.herber.de/bbs/user/31199.zip
Das Problem lag daran, das wenn ("IsAddin=True") die Mappe ausgeblendet ist,
und keine andere Mappe offen ist, auf "Application.Calculation" kein zugriff
besteht.
Ich habe einfach eine Variable definiert, die beim "Workbook_Open" auf False
gesetzt wird, und nach Abbarbeitung des Codes, wenn die Mappe wieder Sichtbar
ist, wird sie auf auf True gesetzt.
Im "Activate" bzw. "Deaktivate" wird dann einfach diese Variable abgerfragt!
'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Mappe an den Rechner binden....
19.02.2006 20:24:49
Joachim
Hallo Sepp,
vielen Dank.
Nun ist es so, dass die Funktionen (Sepp sei Dank) bei der geöffneten Mappe laufen, aber
die Funktion, wenn die Mappe ohne aktivierte Makros gestartet wird noch nicht richtig abläuft.
Wenn ich die Mappe ohne Makros starte soll die Tabelle -Makro-Hinweis- angezeigt werden und die anderen Blätter sind dabei ausgeblendet.
Erst wenn die Mappe mit aktivierten Makros gestartet wird wird die Tabelle -Makro-Hinweis- ausgeblendet und die anderen 6 Tabellen sind sichtbar und es kann damit gearbeitet werden.
Help once more please...
Gruß
Joachim
Anzeige
AW: Mappe an den Rechner binden....
19.02.2006 21:10:06
Josef
Hallo Joachim!
Damit das Makroblatt beim Start angezeigt wird, musst du es beim Schliessen anzeigen lassen!
Probier mal diesen Code in "DieseArbeitsmappe" (zusätzlich zu den anderen!)
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
Sheets(MakroBlatt).Visible = True
For Each Sh In Worksheets
  If Sh.Name <> MakroBlatt Then
    Sh.Visible = xlSheetVeryHidden
  End If
Next Sh
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Mappe an den Rechner binden....
19.02.2006 22:42:03
Joachim
Hallo Sepp,
also irgendwie klappt's nicht.
Ich habe den Code an das Ende von Diese Arbeitsmappe gesetzt und EINMAL war es dann auch so, dass das Makroblatt erschien.
Doch nach dem zweiten Mal war der Zustand wie vorher.
Also das Makroblatt wurde nicht mehr angezeigt.
In der anderen Mappe funktioniert es so, dass bei Start OHNE Makro nur das Makroblatt angezeigt wird und ich kann das Blatt editieren in dem ich den Blattschutz aufhebe mit dem Kennwort admin. Hier kann ich dann an das Ende des Blattes gehen und die Parameter sehen die das Makro dort eingetragen hat.
Wenn ich die Mappe MIT Makro starte, dann kann ich mit STRG 12 die UserForm aufrufen Kennwort admin und bekomme die Möglichkeit den Festplattencode zu löschen und das späteste Aktivierungsdatum anzugeben.
Beim schließen dieser Mappe wird mir aber das Makroblatt nicht angezeigt - wie du in deinem Hinweis angegeben hast.
Ich hoffe du kannst hier nochmal etwas korrigieren.
Die Mappe hast du ja noch.
Gruß
Joachim
Anzeige
AW: Mappe an den Rechner binden....
20.02.2006 11:06:46
Josef
Hallo Joachim!
Kann ich nicht nachvollziehen!
Bei mir läuft es wie gewünscht.
Zur sicherheit nochmal der komplette Code von "DieseArbeitsmappe".
' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

' **********************************************************************
' Modul: DieseArbeitsmappe Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************
Dim blnAction As Boolean

Private Sub Workbook_Activate()
Dim Datei 'H
If blnAction Then Application.Calculation = xlCalculationManual ' !!!!!!!!!!!! Hiermit gibt es ein Problem
Application.OnKey "^{F12}", "AdminMode"

For Each Datei In Application.CommandBars.FindControls(ID:=30005) 'H
  Datei.Enabled = False 'H
Next 'H
End Sub


Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
Sheets(MakroBlatt).Visible = True
For Each Sh In Worksheets
  If Sh.Name <> MakroBlatt Then
    Sh.Visible = xlSheetVeryHidden
  End If
Next Sh
End Sub


Private Sub Workbook_Deactivate()
Dim Datei 'H
If blnAction Then Application.Calculation = xlCalculationAutomatic ' !!!!!!!!!!!! Hiermit gibt es ein Problem
Application.OnKey "^{F12}"

For Each Datei In Application.CommandBars.FindControls(ID:=30005) 'H
  Datei.Enabled = True 'H
Next 'H
End Sub



Private Sub Workbook_Open()
Dim Sh As Worksheet
Dim ok As Boolean
Dim Meldung As String
blnAction = False
ThisWorkbook.IsAddin = True
Sheets("Team1").Activate
'Lizenz prüfen:
ok = False
If SerienNr_Blatt = "" Then
  'noch nicht lizensiert:
  If Datum_Blatt = "" Then Set_Datum_Blatt Date
  If Date > CDate(Datum_Blatt) Then
    'zu spät!
    Meldung = "Die Lizensierungsmöglichkeit ist abgelaufen!" & vbLf & _
      "Bitte wenden Sie sich ....."
  Else
    'Programm lizensieren
    Set_SerienNr_Blatt SerienNummer
    Set_Datum_Blatt FormatDateTime(Date, vbShortDate)
    Application.EnableEvents = False
    ThisWorkbook.Save
    Application.EnableEvents = True
    ok = True
    'Meldung = "Die Tabelle wurde für Ihren Rechner lizensiert." & vbLf & _
      "Viel Spaß!"

  End If
Else
  'schon lizensiert:
  If SerienNr_Blatt <> SerienNummer Then
    'falsche Festplatten-ID
    Meldung = "Die Tabelle wurde für einen anderen PC lizensiert." & vbLf & _
      "Vielleicht haben Sie auch die Festplatte gewechselt." & vbLf & vbLf & _
      "Bitte wenden Sie sich ....."
  Else
    ok = True
  End If
End If
'If Not ok Then ActiveWindow.Visible = False
If Meldung <> "" Then
  Application.EnableCancelKey = xlDisabled
  MsgBox Meldung
  Application.EnableCancelKey = xlInterrupt
End If
ThisWorkbook.IsAddin = False
If Not ok Then
  ThisWorkbook.Close False
  Exit Sub
End If
'Alle Blätter einblenden
For Each Sh In Worksheets
  If Sh.Name <> MakroBlatt Then
    Sh.Visible = True
  End If
Next Sh
'Infoblatt ausblenden
Sheets(MakroBlatt).Visible = xlSheetVeryHidden
ThisWorkbook.Saved = True
blnAction = True
End Sub





Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range)
Sh.Calculate
End Sub


Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
ActiveSheet.Unprotect ("")
Static Zelle As Range
If Application.CutCopyMode Then Exit Sub
If Not Zelle Is Nothing Then
  Cells.Interior.ColorIndex = xlColorIndexNone
End If
Target.Interior.ColorIndex = 6 ' Gelb
Set Zelle = Target
ActiveSheet.EnableSelection = xlUnlockedCells
ActiveSheet.Protect ("")
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Mappe an den Rechner binden....
20.02.2006 12:28:35
Joachim
Hallo Sepp,
also ich habe nun nocheinmal alles neu angelegt und auch deinen letzten Code übertragen.
Jetzt geht es.
Danke..
Wenn ich MIT laufenden Makros die Mappe schließe, werde ich zum Schluß gefragt, ob ich die Mappe speichern will. (Dabei sehe ich dann das -Makro-Blatt-)
Kann ich die Beantwortung nicht sofort und automatisch mit JA bestätigen ohne, dass ich selbst diese Frage beantworten muss.
Dann würde sich ja die Datei selbst und direkt schließen.
Gruß
Joachim
AW: Mappe an den Rechner binden....
20.02.2006 12:43:21
Josef
Hallo Joachim!
geht natürlich auch!
Private Sub Workbook_BeforeClose(Cancel As Boolean)
Dim Sh As Worksheet
Sheets(MakroBlatt).Visible = True
For Each Sh In Worksheets
  If Sh.Name <> MakroBlatt Then
    Sh.Visible = xlSheetVeryHidden
  End If
Next Sh
Me.Save
End Sub


'******************************
'* Gruß Sepp
'*
'* Rückmeldung wäre nett!
'******************************

Anzeige
AW: Mappe an den Rechner binden....
20.02.2006 14:17:56
Joachim
Hallo Sepp,
vielen Dank nun ist es OK.
(Leider sieht man das -Makro-Blatt- beim schließen der Datei doch noch ziemlich lange.
Aber kann man wohl nichts machen. Wäre zwar schön wenn es während des Speichern-Vorganges nicht sichtbar wäre - kann man aber mit leben.)
Nun habe ich noch eine Idee.
Ich möchte gerne einen Button einfügen der mir gefüllte Zellinhalte löscht.
(Etwas ähnliches hast du mir schon bei einer anderen Mappe verwirklicht)
Ich wollte nun auf JEDES TABELLENBLATT noch einen CommandButton setzen und diesem das Makro:

Private Sub CommandButton2_Click()
Dim rng As Range, c As Range
For Each rng In Range("A1:G500")
If Not rng.Locked Then
If rng.MergeCells Then
rng.MergeArea.ClearContents
Else
rng.ClearContents
End If
End If
Next
End Sub

.........................
Es existiert ja bereits auf jedem Blatt der Button:

Private Sub CommandButton1_Click()  zum übertragen der Daten in eine andere Mappe.
Ist dies der richtige Ansatz?
Beeinflusse ich damit die anderen Codes?
Oder füge ich ein Modul ein in dem dieser Code dann steht?
Wie gesagt auf jedem Tabellenblatt soll eben dieser Button -Zellinhalte Löschen-
Es ist bei allen Tabellenblättern der selbe Bereich (A8:G500) der angesprochen wird.
Gruß
Joachim

Anzeige
AW: Mappe an den Rechner binden....
20.02.2006 15:04:37
Josef
Hallo Joachim!
Das ist schon OK wie du das machst!
Gruß Sepp

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige