Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema CommandButton
BildScreenshot zu CommandButton CommandButton-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Userform
BildScreenshot zu Userform Userform-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema RefEdit
BildScreenshot zu RefEdit RefEdit-Seite mit Beispielarbeitsmappe aufrufen

Benötigte Hilfe bei Programmierung mit VBA

Betrifft: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 31.08.2014 13:02:26

Sehr geehrte Community,

mein Name ist Bejamin u. in Sachen VBA bin ich ein absoluter Anfänger. Gestern habe ich bereits 15 Stunden Tutorials u. Lösungsansätze ausprobiert mit ehr bescheidenem Erfolg, da die Umsetzung meiner Wünsche mit VBA "mit meinem Kenntisstand" zu Komplex ist, als dass ich diese Problem alleine bewältigen kann.

Hoffe daher auf tatkräftige Unterstützung.

Folgende Ziele will ich erreichen:

1. Steuerelement einfügen (1. Tabelle "Übersicht"), welches automatisch Tabellenblätter gem. den Listeneinträgen B4:B102 übernimmt.

1.1 Zusätzlich sollen die Tabellenblätter gem. Tabelle 2 (Vorlage) geschaffen werden und einen Hyperlink besitzen, welcher es ermöglicht von Tabelle 1 (Übersicht) auf die jeweilligen Tabellenblätter zu switchen sowie umgekehrter Reihenfolge.

Anmerkung zu 1. u. 1.1: Ein solcher Makrobefehl ist bereits in der angehängten Datei sauber definiert. Das Problem was sich jetzt für mich stellt ist folgendes:

Wenn sich an den Listeneinträgen in Spalte (AB:B102)der Name bzw. Eintrag ändert, will ich, dass dieser automatisch in dem bereits dafür angelegtem Tabellenblatt umbenannt wird. Der Makrobefehl der in der Datei angegeben ist, überschreibt lediglich die Tabellenblätter, da diese jedoch "befüllt werden" sollen, will ich nicht, dass diese überschrieben werden.

2. Kann man eine Sammelerfassung in Excel einrichten (Tabelle 1 "Übersicht"), "mit Datum" welche folgende Kritierien erfüllt.

2.1 Selektierung von Listeneinträgen (A4:A102)-ähnlich wie Filterfunktion-
"Auswahl erfolgt manuel". Diese Möglichkeit muss 8mal vorhanden sein. Dabei muss
ich jedem dieser 8 Möglichkeiten einen festen Wert z.B. 15 , 20, 12 o.ä. sowie
ein Ereignis zuordnen können.

2.2 Das ganze muss dann im Hintergrund durch Excel in die selektierten Listeneinträge (B4:B102)in die dazugehörigen Tabellenblätter geschrieben werden

2.3 Wie das ganze nachher im Tabellblatt des jeweiligen Listeneintrags "optisch"
aussieht ist egal, es kommt nur darauf an, dass gem. meinem Vordruck alles addiert
wird u. am Ende eine Zahl ausgespuckt wird (SUMME).

2.4 Diese (SUMME) will ich dann zusätzlich abändern können indem ich manuel Zahlen
im Tabellenblatt addiere bzw. subtrahiere. Am Ende soll die "FINALE SUMME" dann
automatisch in Tabelle 1 (Übersicht) übertragen werden.

3. Am Ende soll es natürlich auch Möglich sein, ein Tabellenblatt nebst dazugehörigem Listeneintrag "inhaltlich zu löschen". Die Funktion sollen dabei erhalten bleiben (ClearContens).

3.1 Eine solche Funktion würde vermutlich funktionieren, wenn man direkt nach dem Wert aus dem Listeneintrag B4:B102 z.B. "PersonXY" sucht u. dann den Befehl durchführen lässt.

PS anbei eine Datei, die ggf. Grafisch darstellt wie ich es mir vorstelle (Sammelerfassung kann ich leider nicht darstellen).

VIELEN DANK
https://www.herber.de/bbs/user/92409.xlsm (Upload meiner Datei)

  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 31.08.2014 13:10:12

Verdammt ich seh gerade ein paar inhaltliche Fehler meinerseits "Es handelt sich überall um die Spalten "B4:B102" teilweise sind diese oben willkürlich dargestellt und könnten Verwirrung stiften.


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 31.08.2014 16:50:52

Mmmh,

sollten sich meine Vorstellungen nicht realisieren lassen, würde ich trotzdem gerne um ein Feedback bitten. Dann müsste ich mir andere Lösungswege suchen, um am Ende an das Ziel zu kommen :-)


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Luschi
Geschrieben am: 01.09.2014 11:24:35

Hallo Benjamin,

Dein Problem ist doch etwas für einen angagierten Programierer, der viel leistet, aber auch ein paar Vorteile davon haben will!
Warum soll hier einer in die Bresche springen, für lau, garnichts und nullkommanichts...!, wo die Firma kapituliert.
Ich staune, wieviele Anfragen hier & in anderen Foren auftauchen, wo man eindeutig erkennen kann, hier will man für eine 'wonderfull'- Lösung, die professionell ist, Nullkommnichts ausgeben.

Wenn Du eine vernüftige Lösundg willst, dann melde Dich hier mit einer E-Nail-Adresse.
Ansonsten vergiß dieses Angebot.

Gruß von Luschi
aus klein-Paris


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 01.09.2014 11:59:28

Sehr geehrter Forummitarbeiter Luschi, werte Community,

ich bezeichne mich persönlich als nicht all zu dumm und schnell lernfähig!

Zusätzlich gehe ich davon aus, dass die Vorarbeit, die ich in der Kürze der Zeit geschaffen habe, beachtlich ist.

Ich bin mir nicht einmal sicher, ob sich überhaupt die Mühe gemacht wurde, die Datei anzugucken um das Problem nachzuvollziehen.

DAS HAUPTPROBLEM bezieht sich im wesentlichen auf die Datensammelerfassung ("Übersicht") und deren Übertragung in die jeweiligen Register (Tabellenblatt XX - XX).

Eine Hilfestellung einzig und allein in diesem Punkt käme mir sehr gelegen.

Ich stelle hier "keinerlei Ansprüche" auf eine Leistung ! Wer mir helfen kann und mag, soll dieses bitte aus freien Stücken tun. Abwertende Kommentare im Sinne von "Er will viel für nichts" bitte ich zu unterlassen.

Ich nominiere Luschi für die Teilnahme an der ALS IceBucket Challenge "Den Eimer Wasser übern Kopf kannst Du Dir sparen, ich will nur das Geld" .......

Sollte sich eine bestimmte Persönlichkeit jetzt angegriffen fühlen weise ich darauf hin, "DER TON MACHT DIE MUSIK" !

DANKE


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 01.09.2014 12:02:11

Bitte weiterhin um Unterstützung


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: yummi
Geschrieben am: 01.09.2014 13:17:27

Hallo Benjamin,

ich hab da mal eine Frage:
Fangen wir erstmal bei 1. an. Du schreibst Du willst, wenn sich der Wert der Zelle ändert, dass sich der Name des entsprechenden Tabellenblattes auch ändern soll. Das könntest Du über Selection_Change bewerkstelligen. Alten Namen merken und dann das Tabellenblatt suchen und neuen Wert zuweisen. Was dem allerdings entgegen spricht ist: Der Hyperlink. Wie stellst Du dir denn vor zu unterscheiden, ob Du den link anklickst um ihm zu folgen oder um ihn zu ändern?

Gruß
yummi


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: fcs
Geschrieben am: 02.09.2014 16:40:45

Hallo Benjamin,

wie von yummi bereits angesprochen ist es etwas tricky alle Aktionne sauber zu erfassen, wenn man in Spalte B der Übersicht einen Namen einträgt oder entfernt.
1. Ein Name bzw. die Formel wird gelöscht
2. Ein Name/die Formel wird überschrieben
3. Ein Name wird in eine vorher leere Zelle eingetragen

Ich hab das jetzt mal versucht mit Ereignismakros umzusetzen, die auf die Selektion/Änderung von Zellen in Spalte B der Übersicht reagieren.

Probiere es mal aus.
Zusätzlich musst du das Makro "Sheet_Exist" im Modul "Player_Sheet" von Private in Public ändern, da ich es mitbenutze.

Bei deiner Sammelerfassung blcke ich noch nicht ganz durch.
2.1 D.h. in der Übersicht fügst du 8 weitere Spalten ein in denen für jeden Namen bestimmte Spalte(n) ausgefüllt werden.

2.2 "im Hintergrund" ist immer so eine Sache
Da müssen die Randbedingungen und das auslösende Ereignis(Schaltflächen-Klick, Zellwertänderungen etc) genau definiert sein.

2.3 Die Optik (Formatierung) mag ja egal sein,
aber es muss klar definiert werden welche Informationen sollen wo hergeholt werden und wo eingetragen werden. Sollen Altdaten jedes mal gelöscht werden oder die Daten unten in der Liste ergänzt werden?

2.4 Die Teilergebnisse und das Gesamtergebnis werden in den Namens-Blättern ja schon ermittelt.
Das Ergebnis in Zelle G1000 der Blätter kann man mit der Funktion INDIREKT in der Übersicht per Formel berechnen/Übernehmen.
Zelle N4: =INDIREKT("'"&B4&"'!G1000")

3 / 3.1 Löschen von Daten
Etwas anderer Weg: Wähle in der Übersicht eine Zelle in der Zeile mit dem Namen aus, dessen Daten gelöscht werden sollen. Dann Makro per Schaltfläche starten dass Makro liest den Namen aus der Zeile und nach Bestätigung des Namens werden die Datenbereiche in dem Blatt gelöscht.


Gruß
Franz

'Code unter dem Modul von Tabellenblatt "Übersicht"

Private bolLink As Boolean, strSheet As String 'Merker für Daten in angeklickter Zelle

Private Sub Worksheet_Activate()
    Call Worksheet_SelectionChange(Target:=Selection)
End Sub

Private Sub Worksheet_Change(ByVal Target As Range)
  Dim wksName As Worksheet
  If Target.Column = 2 And Target.Cells.Count = 1 And Target.Row > 3 Then
    If bolLink = False Then
      If Target.Value = "" Then
        'do nothing
      Else
        If Sheet_Exist(Target.Text) Then
          MsgBox "Es existiert bereits ein Blatt zum Namen """ & Target.Text _
              & """ - Doppelvergabe nicht möglich!"
          Application.EnableEvents = False
          Target.ClearContents
          Application.EnableEvents = True
          Target.Select
        Else
          Call subMakeNewSheet(strNewName:=Target.Text)
          'und Hyperlink ins Übersichtsblatt schreiben
          Application.EnableEvents = False
          Target.FormulaLocal = "=HYPERLINK(""#'" & Target.Text _
              & "'!b1"";""" & Target.Text & """)"
          'Formel in Spalte N
          Me.Cells(Target.Row, 14).FormulaR1C1 = "=INDIRECT(""'"" & R[0]C2 & ""'!G1000"")"
          Application.EnableEvents = True
          Me.Activate
        End If
      End If
    Else
      If Target.Value = "" Then
        If MsgBox("Soll der vorhandene Name """ & strSheet & """ gelöscht werden?", _
            vbQuestion + vbOKCancel, "Name Löschen") = vbOK Then
            Application.DisplayAlerts = False
            Sheets(strSheet).Delete
            Application.DisplayAlerts = True
            Me.Cells(Target.Row, 14).ClearContents
        Else
            Application.EnableEvents = False
            Target.FormulaLocal = "=HYPERLINK(""#'" & strSheet _
                & "'!b1"";""" & strSheet & """)"
            Application.EnableEvents = True
        End If
      Else
        If MsgBox("Soll der vorhanden Name """ & strSheet & """ umbenannt werden in """ _
            & Target.Text & """?", vbQuestion + vbOKCancel, "Name ändern") = vbOK Then
          If Sheet_Exist(Target.Text) Then
            MsgBox "Es existiert bereitsein Blatt zum Namen """ & Target.Text _
                & """ - Doppelvergabe nicht möglich!"
            Application.EnableEvents = False
            Target.FormulaLocal = "=HYPERLINK(""#'" & strSheet _
                & "'!b1"";""" & strSheet & """)"
            Application.EnableEvents = True
          Else
            Set wksName = Worksheets(strSheet)
            With wksName
              .Name = Target.Text
              .Range("A1").Value = Target.Text
            End With
            Application.EnableEvents = False
              Target.FormulaLocal = "=HYPERLINK(""#'" & Target.Text _
                & "'!b1"";""" & Target.Text & """)"
            Application.EnableEvents = True
          End If
        Else
            Application.EnableEvents = False
            Target.FormulaLocal = "=HYPERLINK(""#'" & strSheet _
                & "'!b1"";""" & strSheet & """)"
            Application.EnableEvents = True
        End If
      End If
    End If
    Call Worksheet_SelectionChange(Target:=ActiveCell)
  End If
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  If Target.Column = 2 And Target.Cells.Count = 1 And Target.Row > 3 Then
    If Target.HasFormula Then
      bolLink = True
      strSheet = Target.Text
    Else
      bolLink = False
      strSheet = ""
    End If
  Else
      bolLink = False
      strSheet = ""
  End If
End Sub

Public Sub subMakeNewSheet(strNewName As String)
    Application.EnableEvents = False
    Sheets("Vorlage").Copy After:=Sheets(1) 'Sheet Vorlage kopieren und einfügen
    ActiveSheet.Name = strNewName 'umbenennen
    'Hyperlink zum Übersichtsblatt erstellen
    strFormel = "=HYPERLINK(" & Chr(34) & "#Übersicht!b1" & Chr(34) & ";" & Chr(34) & _
        "zurück zur Übersicht" & Chr(34) & ")"
    Sheets(strNewName).Cells(1, "b").FormulaLocal = strFormel ' und Hyperlink in Zelle  _
schreiben
    Sheets(strNewName).Cells(1, "a").Value = strNewSheet 'Eigenen Tabellenblattnamen in Zelle  _
schreiben
    Application.EnableEvents = True
End Sub

Franz


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 03.09.2014 18:23:06

Hallo yummi u. Franz, werte Community,

1. Vielen Dank für dieses Feedback, die Umsetzung der von Frank generierten VBA Befehle läuft "perfekt".

2. Eine Ergänzung wäre allerdings der "BRINGER": Automatische Sortierung nach Inhalt Spalte "B3:B102" für den gesamten Bereich Spalte "A3:A102" bis "N3:N102".

3. Zu der Sammelerfassung. Das Excel-Dokument habe ich erneut mit den Änderungen hochgeladen sowie den Versuch gestartet, "visuell" zu veranschaulichen, worum es hierbei geht.

3.1 Welche Daten werden erfasst Tabelltenblatt "Übersicht" Spalte "Q6:Q23 Wert" "R6:R23 Gültigkeit" "S6:S23 Ereignis"
-Zusätzlich Selektiermöglichkeit der in Spalte "B4 B102" erfassten Namen (Tabellenblätter)
-Zusätzlich manuelle Eingabe des "Datums", für welches die o.g. Werte in die Tabellenblätter geschrieben werden sollen.

-Anmerkung Die Daten "Gültigkeit" u. "Wert"

Zur Veranschaulichung ein kleines Beispiel

Datum Wert Ereignis
-Nadine (Tabellenblatt) bekommt am "26.08.2014" "8" Punkte für das "Zimmer aufräumen"
-Ramon (Tabellenblatt) bekommt am "26.08.2014" "8" Punkte für das "Zimmer aufräumen"
-Nadine (Tabellenblatt) bekommt am "28.08.2014" "10" Punkte für das "Zimmer aufräumen"

Ich habe mich dazu entschieden am 27.08.2014 "Gültigkeit" den Wert für das "Ereignis" von "8 auf 10 Punkte" zu erhöhen. Alle Eingaben, die zu diesem "Ereignis" vor dem "27.08.2014" erfolgt sind, sollen den alten "Wert" beibehalten, ab dem "27.08.2014" den neuen "Wert" annehmen.

3.2 Die Eingabemaske sollte ähnlich bzw. genauso aussehen wie im "UserForm1" angelegt "anwenderfreundlich".

3.3 Die Daten die in der Eingabemaske der Sammelerfassung erfolgen, sollten hierbei fortlaufend in die selektierten "Tabellenblätter" geschrieben werden.

3.4 Ist nicht wichtig aber nützlich: Sollte im Hintergrund bereits erkannt werden, dass für das "Tabellenblatt X" bereits ein Eintrag zu dem selben "Ereignis" "Wert" "Datum" existiert, ist eine "Fehlermeldung" sinnvoll.


An dieser Stelle nochmals vielen Dank, an alle diejenigen, die sich diesem Problem hier bereitwillig annehmen.

PS: Die "Ereignisse" u. "Beschreibungen" habe ich fiktiv ausgewählt, diese stellen mit Sicherheit nicht mein Vorhaben dar.

Benjamin G.


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 03.09.2014 18:29:14

Anbei noch der Link zu Anlage https://www.herber.de/bbs/user/92467.xlsm


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 04.09.2014 21:24:27

Beitrag ist weiterhin aktiv


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Daniel
Geschrieben am: 04.09.2014 22:12:15

Hi
so richtig klar ist noch nicht was du willst.

Anscheinend machen dir die Hyperlinks probleme, wenn du neue Blätter anlegst.
Dabei brauchst du die gar nicht.

kopiere folgenden Code ins Modul "DieseArbeitsmappe"

Private Sub Workbook_SheetBeforeDoubleClick(ByVal Sh As Object, ByVal Target As Range, Cancel  _
As Boolean)
Select Case Sh.Name
    Case "Übersicht"
        If Target.Column = 2 Then
            If Target.Row > 3 Then
                If Target.Value <> "" Then
                    Cancel = True
                    On Error Resume Next
                    Sheets(Target.Value).Select
                    If Err <> 0 Then
                        On Error GoTo 0
                        Select Case MsgBox("Für den Namen """ & Target.Value & """ gibt es kein  _
Blatt." & vbLf & "Neu anlegen?", vbYesNo + vbQuestion)
                               Case vbNo
                               Case vbYes
                                    Sheets("Vorlage").Copy After:=Sheets(Sheets.Count)
                                    ActiveSheet.Name = Target.Text
                                    Target.Offset(0, 12).FormulaR1C1 = "=INDIREKT(""'"" & RC2 &  _
"" '!G1000"")"
                            End Select
                    Else
                        On Error GoTo 0
                    End If
                End If
            End If
        End If
    Case Else
        If Target.Value = "zurück zur Übersicht" Then
            Sheets("Übersicht").Select
            Cancel = True
        End If
End Select
End Sub
der Code wird bei jedem Doppelklick in jedem Tabellenblatt ausgeführt.

zunächst prüft der code, in welchem Blatt du dich befindest.
befindst du dich im Blatt übersicht, dann schaut er, ob du eine Zelle in der Spalte B angeklickt hast und wenn ja, versucht er das Tabellenblatt anzuspringen, welches als Namen den Text hat, der in der angeklickten Zelle steht.

bei jedem andern Blatt prüft er den Text in der angeklickten Zelle und wenn da "zurück zur Übersicht" drinsteht, wird zurück zur Übersicht gesprungen.

das funktioniert für jedes Blatt der Tabelle.

wenn du jetzt in die Vorlage in die Zelle B1 den Text "zurück zur Übersicht" eingibst, dann brauchst du beim Einfügen einer neuen Person nur folgendes machen:
1. die Vorlage kopieren
2. der kopierten Vorlage den passenden Namen geben
3. in der Spalte B der Übersicht diesen Namen eintragen.

das ist dann auch in obigen Code eingebaut, wenn du in Spalte B der Übersicht einen Namen eingibst und doppelt anklickst, für den es noch kein Blatt gibt.


du kannst mit diesem Code also alle deine Makros ersetzen, die sich mit dem Hinzufügen von Blättern und dem erstellen der Hyperlinks befassen.

Gruß Daniel


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 05.09.2014 00:48:46

Danke für das schnelle Feedback Daniel.

Wie ich bereits erwähnt hatte, läuft das Modul von Franz einwandfrei.
Ich habe keinerlei Probleme mit den Hyperlinks mehr.

Das Problem was ich zuletzt versucht habe zu beschreiben, ist lediglich eine Sammelerfassung im Tabellenblatt "Übersicht" anzulegen.

Sicherlich, man kann man die Werte manuell eintragen, jedoch beabsichtige ich ca. 100 Tabellenblätter (Namen für jeden User)anzulegen. Da vereinzelte Werte in meiner Übersicht teilweise auf 80 Personen gleichzeitig übertragen werden soll, ist das manuelle einfügen/übertragen sehr mühselig.

Am besten folgenden Link aufrufen https://www.herber.de/bbs/user/92467.xlsm u. dazu siehe die Forumbeschreibung meinerseits am 03.09.2014, 18:23 Uhr zu gemühte ziehen. Diese geben Aufschluss über die definierten Rahmenbedingungen, von denen Franz gesprochen hat.

DAAAAAAAAAAAAAAAAAANKE


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: fcs
Geschrieben am: 06.09.2014 16:06:04

Hallo Benjamin,

hier deine Datei mit dem aufgepeppten Userform für die Sammelerfassung und einer Version zum Löschen von Blattinhalten.
https://www.herber.de/bbs/user/92502.xlsm

Gruß
Franz


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 06.09.2014 18:52:01

Hi Franz,

wieder einmal großen Respekt für die geleistete Arbeit.

Allerdings habe ich im gesamten Dokument Komplikationsprobleme (ggf. versionsbedingt oder falsche Makroeinstellung? Benutze Office 2007).

Alle CommandButtons, weisen immer auf den selben Fehler hin,

1. Sammelerfassung nach Eingabe des Datums im Format DD.MM.YYYY Fehler beim Kompilieren, Projekt oder Bibliothek nicht gefunden --Fehlercode im Formular "UF_Erfassung"-- .Value = Format(CDate(.Value), strFormat)

2. Blatt-Inhalte löschen nach Selektierung der betreffenden Arbeitsblätter (Namen) u. Aktivierung des Commandbuttons "Inhalte im Tabellenblatt löschen" Fehler beim Kompilieren, Projekt oder Bibliothek nicht gefunden --Fehlercode im Formular "UF_InhalteLöschen"-- lngZeileL = Val(Right(Format(Time, "hhmmss"), 4))

3. Anlegen/Umbennen der in Spalte B ("Übersicht") zu erfassenden Namen (Arbeitsblätter) Namen Fehler beim Kompilieren, Projekt oder Bibliothek nicht gefunden --Fehlercode im Arbeitsblatt "Übersicht"-- If UCase(Sheets(i).Name) = UCase(sh_name) Then

Hoffe Du oder andere Kracks können da Abhilfe schaffen.

Gruß

Benjamin


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: fcs
Geschrieben am: 06.09.2014 19:28:55

hallo Benjamin,

die Problemfunktionen sind eigentlich Standard-VBA-Funktionen.

Prüfe mal bei geöffneter Datei im VBA-Editor unter Extras--Verweise die aktivierten Verweise.

Dies sollten mindestens die oben angezeigten sein, wobei bei dir die Versions-Nummer für Excel 2007 nicht 14 sondern 12 sein sollte.

Aktiviere ggf. die ensprechende Object Library der Version 12.
Die evtl. aktivierten Verweise auf
RefEditControl
und
ATLContactPicker 1.0 Type Library
sind für die von mir in den Userformen verwendeten Funktionen und Steuerelemente nicht erforderlich und können deaktiviert werden.

Falls es dann immer noch nicht funktioniert, dann füge vor die Problembefehle
"VBA." ein

.Value = VBA.Format(CDate(.Value), strFormat)
lngZeileL = Val(Right(VBA.Format(Time, "hhmmss"), 4))
If VBA.UCase(Sheets(i).Name) = VBA.UCase(sh_name) 
Gruß
Franz

ein.


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: Benjamin G
Geschrieben am: 06.09.2014 19:47:16

Ich sag mal so, "Du bist der Hammer" Franz.

Das Abschalten der von dir genannten VBA-Verweise hat das Problem gelöst.

Bitte schreibe mich doch mal per E-Mail an.

Gruß Benjamin


  

Betrifft: AW: Benötigte Hilfe bei Programmierung mit VBA von: fcs
Geschrieben am: 06.09.2014 21:01:09

Hallo Benjamin,

Bitte schreibe mich doch mal per E-Mail an.

Ohne E-mail-Adresse ist das etwas schwierig. DU kannst mich aber unter der in meinem Profil genannten E-Mail-Adresse anfunken.

Gruß
Franz


 

Beiträge aus den Excel-Beispielen zum Thema "Benötigte Hilfe bei Programmierung mit VBA"