Fehler bei: Konstanter Ausdruck erforderlich

Moderator: ModerationP

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon snb » 28. Mai 2022, 12:46

Etwas bequemer:
z.B.

Code: Alles auswählen
Sub Tab_Teiln()
  sn = Array(5, 4, 9, 12, 2, 15)
 
  With Tab_Teiln
    .UsedRange.ClearContents
    For j = 0 To ubound(sn)
       Tabelle4.UsedRange.Columns(sn(j)).Copy .Cells(1, j)
    Next
  End With
End Sub
Zuletzt geändert von snb am 28. Mai 2022, 17:08, insgesamt 1-mal geändert.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9379
Registriert: 25. Sep 2014, 16:37

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon Gast » 28. Mai 2022, 14:50

Danke, hat leider keine Auswirkung auf die Verarbeitungszeit. Gruß
Gast
 

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon snb » 28. Mai 2022, 17:09

Schau mal wie einfach das Leben in VBA sein kann:

Code: Alles auswählen
Sub M_Teiln()
  M_snb Array(5, 4, 9, 12, 2, 15), Tab_Teiln
End Sub

Sub M_Post()
  M_snb Array(3, 4, 5, 6, 7, 8, 15, 14), Post
End Sub

Sub M_Problem()
  M_snb Array(2, 4, 5, 13, 15, 21, 14, 12), Problem
End Sub

Sub M_snb(sn, sh)
  With sh
    .UsedRange.ClearContents
    For j = 0 To UBound(sn)
       Tabelle4.UsedRange.Columns(sn(j)).Copy .Cells(1, j)
    Next
  End With
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9379
Registriert: 25. Sep 2014, 16:37

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon Gast » 28. Mai 2022, 17:50

Das Sheet("Problem") exisitiert:

Code: Alles auswählen
Sub M_Problem()
  M_snb Array(2, 5, 7), "Problem"
End Sub

Sub M_snb(sn, sh)
  With Sheets(sh)
    .UsedRange.ClearContents
    For j = 0 To UBound(sn)
       Tabelle1.UsedRange.Columns(sn(j)).Copy .Cells(1, j + 1)
    Next
  End With
End Sub
Gast
 

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon snb » 28. Mai 2022, 21:50

Studiere mal erst etwas VBA Grundlagen. Das Sheet Object Problem kann mittels der Codename auch als Object als Parameter benützt werden.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9379
Registriert: 25. Sep 2014, 16:37

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon Wolli25 » 29. Mai 2022, 09:39

Hallo, mit dem Studium das ist ein netter Hinweis, aber mit Geburtsjahrgang in den Anfang der1940er erübrigt sich das.
Mein Beitrag war der von 14:50 Uhr den ich nicht ans laufen brachte. Damit meinte ich ob der Code die Verarbeitung beschleunigt oder den Codetext vereinfacht. Ich hatte es nicht ausprobiert.
Habe den Code mal eingebaut. Das "Problem" im Code korrigiert. Beim Starten kommt gleich der Fehler: Fehler beim kompilieren, Sub oder Function nicht definiert.
Damit habe ich dann gleich eine für mich nicht lösbare Situation.

Wünsche einen schönen Sonntag und Gruß Wolli
Wolli25
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 132
Registriert: 22. Feb 2016, 18:18

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon snb » 29. Mai 2022, 21:58

Grundlagen Fehler:

- ein sheet object namens Tab_Teiln und ein Makro Tab_Teiln
- ein sheet object namens Post und ein Makro Post
- ein sheet object namens Problem und ein Makro Problem

Das ist Fragen um Probleme.
Gewöhne dich ein Makro immer mit M_ anzufangen, und ein Sheet mit S_ , dann gibt's diese Risiken nicht.

Das Makro M_snb läuft natürlicht makellos mit diese änderung:

Code: Alles auswählen
Sub M_snb(sn, sh)
  With sh
    .UsedRange.ClearContents
    For j = 0 To UBound(sn)
       Tabelle4.UsedRange.Columns(sn(j)).Copy .Cells(1, j + 1)
    Next
  End With
End Sub


PS. Debugging ist eine sehr effektive Lernmethode.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9379
Registriert: 25. Sep 2014, 16:37

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon Gast » 30. Mai 2022, 09:06

Danke, habe deinen Rat befolgt und die Tabellen und Macros umbenannt. s. Beispiel

Wenn ich nun starte kommt der Fehler bei "For J" Fehler beim kompilieren, Variable nicht definiert.

Kannst du da bitte nochmal schauen. Meine Versuche mit Dim as ...... sind fehlgeschlagen.

Gruß Wolli


Code: Alles auswählen
Sub M_Tab_Teiln()
  M_snb Array(5, 4, 9, 12, 2, 15), "S_Tab_Teiln"
End Sub
Sub M_Post()
M_snb Array(3, 4, 5, 6, 7, 8, 15, 14), "S_Post"
End Sub
Sub M_Problem()
 M_snb Array(2, 4, 5, 13, 15, 21, 14, 12), "S_Problem"
End Sub
Sub M_snb(sn, sh)
  With sh
    .UsedRange.ClearContents
    For j = 0 To UBound(sn)
       Tabelle4.UsedRange.Columns(sn(j)).Copy .Cells(1, j + 1)
    Next
  End With
End Sub
Gast
 

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon snb » 30. Mai 2022, 10:04

Einfach "option Explicit' auskommentieren.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9379
Registriert: 25. Sep 2014, 16:37

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon Gast » 30. Mai 2022, 10:52

Sorry, hatte das schon mal versucht, dann kommt der Fehler bei .UsedRange.ClearContents "Laufzeitfehler 424, Objekt erforderlich"
Gast
 

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon snb » 30. Mai 2022, 10:59

Du muss "S_Tab_Teiln" ohne Gänsefüsse schreiben in

Code: Alles auswählen
Sub M_Tab_Teiln()
  M_snb Array(5, 4, 9, 12, 2, 15), S_Tab_Teiln
End Sub
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9379
Registriert: 25. Sep 2014, 16:37

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon Wolli25 » 30. Mai 2022, 12:21

Danke, die Änderungen haben nicht zum Erfolg geführt. Es kommt beim aktivieren wiederum zu dem Fehler. Die Tabellenübersicht aus der ArbTab hat in der Eingabemaske auch die Werte nicht mehr sichtbar.
Darin konnte ich mir die Zeileninhalte direkt ansehen, so quasi gespiegelt. Hänge mal die von mir geänderte Datei an. Gruß Wolli
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
Wolli25
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 132
Registriert: 22. Feb 2016, 18:18

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon slowboarder » 30. Mai 2022, 13:00

HI
womit arbeitest du?
dem CodeNamen der Tabelle (steht im Projekexplorerbaum vorne) oder mit dem Indexnamen (steht im Projektexplorerbaum in der Klammer, das ist der Name der auf dem Reiter steht)

den CodeNamen kannst du im Code direkt verwenden, das ist dann das entsprechende Sheetobjekt.
Wenn du den Indexnamen verwenden willst, musst du das Sheetobjekt immer über WorkSheets("Indexname") erstellen.

also mit CodeNamen:
Code: Alles auswählen
Set sh = Tabelle1

mit Indexnamen:
Code: Alles auswählen
Set sh = Worksheets("Tabelle1")

wenn beide voneinander abweichen, muss man halt wissen, was man macht.
Gruß Daniel
slowboarder
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 29131
Registriert: 18. Apr 2009, 13:33

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon snb » 30. Mai 2022, 13:02

Deine Datei enthält überhaupt die Makros nicht mehr.
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
snb
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 9379
Registriert: 25. Sep 2014, 16:37

Re: Fehler bei: Konstanter Ausdruck erforderlich

Beitragvon Wolli25 » 30. Mai 2022, 15:57

Hallo, wenn ich "___einfacher.xlsm" starte geht sie beim Eingeben gleich in Fehler "Kompilieren..... " . Ich finde deinen Codeabschnitt in Tabelle8 wieder, ich hatte ihn nach meinem geringen Wissen in der USERFORM eingefügt wo ja auch der Befehl "Beenden" steht. Möchtest du vielleicht doch nochmal meine TestTabelle3 dir anschauen. Gruß Wolli
Wolli25
Im Profil kannst Du frei den Rang ändern
 
Beiträge: 132
Registriert: 22. Feb 2016, 18:18

VorherigeNächste

Zurück zu Excel Forum (provisorisch)

Wer ist online?

Mitglieder in diesem Forum: HKindler, lupo1, steve1da und 48 Gäste