Erkennt jemand meinen Fehler in diesem Makro?

3 Antworten

Wie hast du deinen Code erstellt? Normalerweise ändert der VBA-Editor automatisch "SUB" in "Sub", fügt Leerzeichen zwischen "Date&Time" ein und würde dich vermutlich auf deinen Fehler aufmerksam machen.

Hab die Einzelbefehle nicht nachvollzogen (hab mit SaveAsUI noch nie gearbeitet), verstehe den Einwand nicht, steht doch alles so da?

Aber: Steht das Makro auch im Modul des Workbooks (und nicht in irgendeinem anderen Modul!) ?

Und Date & Time: muss da nicht ein Leerzeichen dazwischen bei &-Verknüpfung (sonst + anstatt &) liegen die als UI vor, muss man die nicht umwandeln? (kenne mich mit UI aber in so einem Zusammenhang überhaupt nicht aus)

0

Ja ist im VBA und dort auch wie beschrieben geändert diese Fehler sind dem tippen am Handy geschuldet.

0

Nein daher ja meine Frage

0

Was mir jedoch gerade auffällt wenn ich auf "Sub/UserForm ausführen" klicke wird mir im geöffneten Fenster das Makro nicht angezeigt ich dachte im ersten Moment, dass es nicht erscheint, da es nur beim Speichern aktiviert wird aber habe langsam doch Zweifel daran

0
@Pn4uma

Das verstehe ich nicht. Das Makro muss bei der Arbeitsmappe liegen und wird ausgelöst, sobald sie gespeichert wird.

Mit einer Userform hat das erstmal direkt nichts zutun.

Setz mal einen Haltepunkt und schau, bei welchen Aktionen er dort stehen bleibt.

0
@Suboptimierer

nicht angezeigt: ist ja Private Sub (warum eigentlich Private?, kann man doch auch weglassen!)

0

Bei dem hier Zweifel ich grade:

 

Range ("B74") .Value
Weil Value ist auf jeden Fall eine Eigenschaft einer Zelle (.cells(..)) aber bei einer Range - auch wenn Du bloß eine Zelle angegeben hast, welcher Value soll denn bei einer Range = beliebigen Anzahl an Zellen gelten?

Probiers mal mit '.cells'

Das ist definitiv nicht der Fehler. Value funktioniert auch auf Range. Das habe ich schon mehrfach so verwendet.

Deine Frage ist aber nicht ganz unberechtigt, welcher Wert welcher Zelle zurück gegeben wird oder ob ein Variant-Array zurückgegeben wird, wenn der Value eines Bereichs ausgelesen wird.

0
@Suboptimierer

es wird immer der Wert der 1. Zelle wiedergegeben, wenn nur eine genannt, eben dieser.

Demo: Definiere mal einen Bereich und schreibe verschiedene Werte rein, dann i'wo die Formel =Bereich

Kann man natürlich auch als Matrix auslesen

1

Hallo,
Das ist meines Erachtens nach falsch:

Sheets(1)
Richtig
Sheets(“1“)

Fehlermeldung Excel VBA-Makro

Hi, ich möchte gerne in 15 verschiedenen Zeilen folgendes Makro anlegen. Wenn in Spalte J eine 1(2/3/4/5) eingegeben wird, soll der Wert in der gleichen Zeile in Feld C(D/E/F/G) um eins erhöht werden. Ich habe mir hier: http://www.gutefrage.net/frage/excel-wert-erhoehen den Code rauskopiert und entsprechend geändert. Ist erstmal nur für eine Zeile, würde ich dann manuell umändern für jede extra Zeile:

Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("J3")) Is Nothing Then Select Case Target.Value Case 1 Range("B3").Value = Range("B3").Value + 1 Case 2 Range("C3").Value = Range("C3").Value + 1 Case 3 Range("D3").Value = Range("D3").Value + 1 Case 4 Range("E3").Value = Range("E3").Value + 1 Case 5 Range("F3").Value = Range("F3").Value + 1

End Select Target.Value = 0 End If End Sub

Er führt die gewünschte Funktion aus, aber ich bekomme folgende Fehlermeldung:

"Laufzeitfehler ´-2147417848 (80010108)Die Methode ´Value für das Objekt ´Range` ist fehlgeschlagen"

wie gesagt, macht er aber alles was er soll. Beim zweiten Versuch stürzt Excel dann komplett ab.

Kann jemand helfen?

...zur Frage

Excel Makro ausführen bei Änderung in einer Zelle in anderem Tabellenblatt?

Hallo zusammen,

ich habe ein Problem mit Excel, das vermutlich ganz leicht zu lösen ist, alleine komme ich aber nicht weiter.

Ich möchte gerne ein Makro immer bei einer Änderung in einer bestimmten Zelle ausführen lassen. Dazu habe ich bisher folgenden Code:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range) Set Target = Intersect(Target, Range("A1")) If Target Is Nothing Then Exit Sub Else FooterLeft End If End Sub

Der funktioniert auch, bloß soll jetzt die aktivierende Zelle nicht A1 auf diesem Tabellenblatt sondern beispielsweise Zelle A6 auf dem Tabellenblatt "Deckblatt" sein.

Was muss ich hier wie umformulieren damit das klappt, oder brauche ich grundsätzlich eine ganz andere Funktion dazu?

Vielen lieben Dank!

...zur Frage

vba Zellenverbinden?

Hallo zusammen,

ich habe jetzt eine ewigkeit im Internet nach einer Lösung für mein Problem gesucht, aber werde leider nicht fündig.

Ich wurde gerne wenn in Zelle I25 das Wort Für? steht, sich automatisch die Zellen K25:O25 verbinden, wenn ein anderes Wort dort steht, sollen die Zellen wieder getrennt sein.

Dafür habe ich folgendes gemacht:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)

If Range("I25").Text = "Für?" Then

Range("K25:O25").connect

End If

End Sub

Aber leider funktioniert dies nicht, kann mir jemand weiterhelfen?

vielen dank :)

...zur Frage

Excel Makro als Schleife aber wie?

Hallo

Ich bräuchte mal Eure Hilfe.

Ich möchte in meiner Mappe,

 in Tabelle 02-04-18 in Zelle B9

den Wert aus Tabelle 01-04-18 aus Zelle 35 übertragen haben.

in Tabelle 02-04-18 in Zelle B10

den Wert aus Tabelle 01-04-18 aus Zelle 36 übertragen haben usw.

Habe dieses Makro, was auch läuft. (Excel 2007)

Sub VortagLohn()

'Sub ÜbertragVortragLohn()

Sheets("02-04-18").Select

   Range("B9").Select

   ActiveCell.Formula = "=+'01-04-18'!B35"

   Range("B10").Select

   ActiveCell.Formula = "=+'01-04-18'!B36"

Sheets("03-04-18").Select

   Range("B9").Select

    ActiveCell.Formula = "=+'02-04-18'!B35"

   Range("B10").Select

    ActiveCell.Formula = "=+'02-04-18'!B36"

Sheets("04-04-18").Select

   Range("B9").Select

    ActiveCell.Formula = "=+'03-04-18'!B35"

   Range("B10").Select

    ActiveCell.Formula = "=+'03-04-18'!B36"

   

  End Sub

Jedoch möchte ich dieses für den ganzen Monat haben,

ohne das ich alle Sheets händisch aufsteigend eingeben muß.

Hat jemand eine Idee wie ich das für den Rest des Monats hin bekomme.

Evtl. mit weiter oder hochzählen oder mit Schleife.

Habe nicht so viel Ahnung, daher meine Frage an Euch.

Wäre toll wenn jemand für mich eine Lösung hat.

Sonst werde ich es wohl doch alles händisch machen müssen.

Vielen Dank im voraus.

...zur Frage

Excel 2010 VBA - MsgBox, wenn schon beschriebene Zellen bearbeitet werden sollen

Hallo Zusammen,

folgendes Makro führt zu einer kleinen „Sicherheitsabfrage“:

Option Explicit

Public OldValue As Variant

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Application.Intersect(Target, Range("A:W")) Is Nothing Then

MsgBox "Sind Sie sich sicher, dass Sie die Zelle bearbeiten wollen?", vbQuestion, "Achtung"

End If

End Sub

Das Makro funktioniert schon ganz gut, allerdings möchte ich es ein wenig anpassen. Es soll nur eine Textbox erscheinen, wenn eine bereits beschriebene Zelle bearbeitet wird. Bei Bearbeitung leerer Felder soll also keine Textbox erscheinen.

Vielen Dank schon einmal! :)

...zur Frage

Mehrdeutiger Name Workbook_open

Hallo,

kann mir jemand biite sagen wie ich meine beiden makros in eine Arbeitsmappe so beschreibe das sie beide funktionieren?

sie haben jeweils beide den Anfang Workbook_open ich weiss, das dass nur einmal vorkommen darf. Zur zeit funktioniert nur das makro mit der zeit aber ich wünschte das Makro mit dem Scroll verbor würde auch funktionieren

hier mein Makro. Ich würde mich freuen wenn, jemand die passende Antwort hätte! :)

Option Explicit

Private Sub Workbook_Open() Zeitmakro End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean) On Error Resume Next Application.OnTime EarliestTime:=DaEt, Procedure:="Zeitmakro", Schedule:=False End Sub

...zur Frage

Was möchtest Du wissen?