HERBERS Excel-Forum - das Archiv
Versionskonflikt im VBA-Code
Pat132

Guten Morgen, liebe Excperten,
ich hatte mich gestern extrem gefreut, dass ich ein User-Form erstellt hatte, das nach meinen Wünschen funktioniert. Es beinhaltet eine Combo-Box, deren Datenquelle (RowSource) eine kurze dreizeilige Liste ist. Die vom Benutzer getroffene Auswahl wird dann in eine Zelle in meiner Mappe zurückgeschrieben. Die Zelle habe ich benannt: Auswahl_form
Hier der Code:
Private Sub cmb_Ursprung_Change()
Application.Calculation = xlCalculationAutomatic
[Auswahl_form] = Me.cmb_Ursprung.Value
Me.txt_zielplan.Value = [Ziel_form]
End Sub
Die Vorgehensweise mit der eckigen Klammer funktioniert in Excel 2013 einwandfrei. In Excel 2007 - das viele meiner User noch verwenden - kommt leider ein Kompilierungsfehler "Projekt oder Bibliothek nicht gefunden".
Kann ich das umgehen?
Vielen Dank für Eure Anregungen. Gruß, Patrik

AW: Versionskonflikt im VBA-Code
selli

hallo patrik,
klammern weglassen.
gruß
selli

AW: Versionskonflikt im VBA-Code
Pat132

Hallo Selli,
danke für die Anregung, aber leider ändert sich nichts. Weiterhin findet er nix...:-(
Muss ich die Zelle inkl. Bezeichnung des Tabellenblattes ggf. ohne Namen ansteuern?
Gruß, Patrik

AW: Versionskonflikt im VBA-Code
Daniel

Hi
probier mal folgende Variante, um die Zellbezüge zu beschreiben:
Range("Auswahl_form").value = Me.cmb_Ursprung.Value
Me.txt_zielplan.value = Range("Ziel_form").value
wenn die Userform auch verwendet werden kann, wenn gleichzeitig eine andere Datei geöffnet ist, dann müsstest du so schreiben:
thisWorkbook.Sheets("?").Range("Auswahl_form").value = Me.cmb_Ursprung.value
Me.txt_zielplan.value = Thisworkbook.Sheets("?").Range("Ziel_form").value 

Bitte noch den Namen des Tabellenblatts, auf dem die Namen liegen, eintragen.
Gruß Daniel

AW: Versionskonflikt im VBA-Code
Pat132

Hallo Daniel,
super, Dein Tipp funktioniert. Der Projektfehler taucht nicht mehr auf. Besten Dank!! Leider taucht der selbe Fehler nun bei dem nächsten Befehl auf.
Situation: Wenn der Benutzer eine Auswahl getroffen hat, wird darüber ein bestimmtes Tabellenblatt definiert, in welches Werte kopiert werden sollen (Dieses Tabellenblatt ist das o. g. "Ziel_form"). Das Tabellenblatt ist mit einem Namen bezeichnet, der in der Zelle U26 auf dem Blatt "Steuertabellen" steht.
Folgender Code funktioniert in Office 2013 blendend:
Sub Zielblatt_waehlen()
Worksheets("Steuertabelle").Select
Tab_Name = ActiveSheet.Range("U26").Text
Sheets(Tab_Name).Select
End Sub
In 2007 steigt er bei "Tab_Name =..." wieder mit der selben Fehlermeldung aus. Gibt es Orientierungshilfen, welche Anweisungen grundsätzlich nicht mit älteren Versionen kompatibel sind?
Beste Grüße, Patrik

AW: Versionskonflikt im VBA-Code
Daniel

Hi
solche Beschreibungen sollte es auf den Seiten von Microsoft geben.
Allerdings gibt es nicht allzuviele Funktionen, die Abgeschaft wurden, vorallem nicht so einfache Sachen wie die Variablenzuweisung.
Grundsätzlich ist es natürlich hilfreich, wenn du mit Option Explicit arbeitest und deine Variablen deklarierst.
ansonsten könnte das Verhalten auch an defekten Verweisen liegen.
Klick mal im VBA-Editor in der nicht funktionierenden Version auf EXTRAS - VERWEISE und überpüfe die angehakten Verweise. Wenn da irgendwas komisch ist, einfach mal den Haken für diesen Verweis rausnehmen.
Gruß Daniel

AW: Versionskonflikt im VBA-Code
Pat132

Hallo Daniel,
ich habe alle Verweise deaktiviert, die nicht verwendet wurden. Jetzt geht es. Ich bin ja mal gespannt, ob es das jetzt war und ob ich nicht die Funktionalität anderer Anweisungen damit einschränke. Einfach mal abwarten..
Besten Dank jedenfalls. Gruß, Patrik

Versionskonflikt im VBA-Code
Pat132

Guten Morgen, liebe Excperten,
ich hatte mich gestern extrem gefreut, dass ich ein User-Form erstellt hatte, das nach meinen Wünschen funktioniert. Es beinhaltet eine Combo-Box, deren Datenquelle (RowSource) eine kurze dreizeilige Liste ist. Die vom Benutzer getroffene Auswahl wird dann in eine Zelle in meiner Mappe zurückgeschrieben. Die Zelle habe ich benannt: Auswahl_form
Hier der Code:
Private Sub cmb_Ursprung_Change()
Application.Calculation = xlCalculationAutomatic
[Auswahl_form] = Me.cmb_Ursprung.Value
Me.txt_zielplan.Value = [Ziel_form]
End Sub
Die Vorgehensweise mit der eckigen Klammer funktioniert in Excel 2013 einwandfrei. In Excel 2007 - das viele meiner User noch verwenden - kommt leider ein Kompilierungsfehler "Projekt oder Bibliothek nicht gefunden".
Kann ich das umgehen?
Vielen Dank für Eure Anregungen. Gruß, Patrik

AW: Versionskonflikt im VBA-Code
selli

hallo patrik,
klammern weglassen.
gruß
selli

AW: Versionskonflikt im VBA-Code
Pat132

Hallo Selli,
danke für die Anregung, aber leider ändert sich nichts. Weiterhin findet er nix...:-(
Muss ich die Zelle inkl. Bezeichnung des Tabellenblattes ggf. ohne Namen ansteuern?
Gruß, Patrik

AW: Versionskonflikt im VBA-Code
Daniel

Hi
probier mal folgende Variante, um die Zellbezüge zu beschreiben:
Range("Auswahl_form").value = Me.cmb_Ursprung.Value
Me.txt_zielplan.value = Range("Ziel_form").value
wenn die Userform auch verwendet werden kann, wenn gleichzeitig eine andere Datei geöffnet ist, dann müsstest du so schreiben:
thisWorkbook.Sheets("?").Range("Auswahl_form").value = Me.cmb_Ursprung.value
Me.txt_zielplan.value = Thisworkbook.Sheets("?").Range("Ziel_form").value 

Bitte noch den Namen des Tabellenblatts, auf dem die Namen liegen, eintragen.
Gruß Daniel

AW: Versionskonflikt im VBA-Code
Pat132

Hallo Daniel,
super, Dein Tipp funktioniert. Der Projektfehler taucht nicht mehr auf. Besten Dank!! Leider taucht der selbe Fehler nun bei dem nächsten Befehl auf.
Situation: Wenn der Benutzer eine Auswahl getroffen hat, wird darüber ein bestimmtes Tabellenblatt definiert, in welches Werte kopiert werden sollen (Dieses Tabellenblatt ist das o. g. "Ziel_form"). Das Tabellenblatt ist mit einem Namen bezeichnet, der in der Zelle U26 auf dem Blatt "Steuertabellen" steht.
Folgender Code funktioniert in Office 2013 blendend:
Sub Zielblatt_waehlen()
Worksheets("Steuertabelle").Select
Tab_Name = ActiveSheet.Range("U26").Text
Sheets(Tab_Name).Select
End Sub
In 2007 steigt er bei "Tab_Name =..." wieder mit der selben Fehlermeldung aus. Gibt es Orientierungshilfen, welche Anweisungen grundsätzlich nicht mit älteren Versionen kompatibel sind?
Beste Grüße, Patrik

AW: Versionskonflikt im VBA-Code
Daniel

Hi
solche Beschreibungen sollte es auf den Seiten von Microsoft geben.
Allerdings gibt es nicht allzuviele Funktionen, die Abgeschaft wurden, vorallem nicht so einfache Sachen wie die Variablenzuweisung.
Grundsätzlich ist es natürlich hilfreich, wenn du mit Option Explicit arbeitest und deine Variablen deklarierst.
ansonsten könnte das Verhalten auch an defekten Verweisen liegen.
Klick mal im VBA-Editor in der nicht funktionierenden Version auf EXTRAS - VERWEISE und überpüfe die angehakten Verweise. Wenn da irgendwas komisch ist, einfach mal den Haken für diesen Verweis rausnehmen.
Gruß Daniel

AW: Versionskonflikt im VBA-Code
Pat132

Hallo Daniel,
ich habe alle Verweise deaktiviert, die nicht verwendet wurden. Jetzt geht es. Ich bin ja mal gespannt, ob es das jetzt war und ob ich nicht die Funktionalität anderer Anweisungen damit einschränke. Einfach mal abwarten..
Besten Dank jedenfalls. Gruß, Patrik

Dialog-Beispiele
Bewerten Sie hier bitte das Excel-Portal