MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 15.05.2019, 17:59   #1
Louislitt
Neuer Benutzer
Neuer Benutzer
Standard VBA - Überfürhung eines Integers in ein Moduk

Hallo,


Ich habe in meiner Arbeitmappe mehrere Buttons, hier exemplarisch dargestellt als "Ablegen" und "Ablegen2". Jedem Button ist ein der Integer Wert X zugeordnet und dieser Wert soll in das Modul5 übernommen werden um die gewünschte Rechenoperation durchzuführen. Bisher wird die Zahl alleridngs nicht in das Modul übernommen. Vermutlich ist x=8,.. nur lokal definiert und geht somit nicht ins Modul über.

Wie kann ich das ändert?



Code:

Private Sub Ablegen_Click()
      X = 8
      Call Modul5.Copy
End Sub

Private Sub Ablegen2_Click()
    X = 9
    Call Modul5.Copy
End Sub


Code:

 Sub Copy()
    With Sheets("Ablage")
    .Cells(X - 5, "A").Value = Sheets("Tab2").Cells(X, "C").Value
    .Cells(X - 5, "B").Value = Sheets("Tab2").Cells(X, "D").Value
    .Cells(X - 5, "C").Value = Sheets("Tab2").Cells(X, "E").Value
    .Cells(X - 5, "D").Value = Sheets("Tab2").Cells(X, "F").Value
    .Cells(X - 5, "E").Value = Sheets("Tab2").Cells(X, "G").Value

End With
End Sub
Louislitt ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2019, 18:01   #2
Klaus-Dieter
MOF Koryphäe
MOF Koryphäe
Standard

Hallo,

dann musst du deine Variable X eben global deklarieren. Allerdings gibt es in deinem Quelltext noch die eine oder andere Klinke.

__________________

<br>Viele Grüße Klaus-Dieter<br>
<a *****"http://excelwelt.eu/index.html"><img src="http://excelwelt.eu/Images/excelwelt.png" width=239 height=56 border=0 alt="Klaus-Dieter's Excel und VBA Seite">
Klaus-Dieter ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2019, 18:17   #3
Mase
MOF Koryphäe
MOF Koryphäe
Standard

Hi,

oder den Inhalt an die Prozedur übergeben:
Code:

 
Sub Copy(ByVal x As Integer) 
…

Call Modul5.Copy(x)

__________________

gruß
Marco

Feedback erwünscht.
Wie ? -> Verwende hierzu das mittlere Symbol links.
Mase ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2019, 19:28   #4
Louislitt
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat:

Hallo,

dann musst du deine Variable X eben global deklarieren. Allerdings gibt es in deinem Quelltext noch die eine oder andere Klinke.

ja das mit der globalen Variable habe ich auch schon probiert. Habe sie Dim X As Integer vor das Sub geschrieben. Auch mal mit Public herumgespielt aber nicht zum Erfolg gekommen.


Welche Klinke ist denn noch drin?
Louislitt ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2019, 19:43   #5
ReginaR
MOF Profi
MOF Profi
Standard

... na ja, ein Kinke ist zum Beispiel, dass das Cells-Objekt nicht mit Spaltenbuchstaben arbeiten kann. Cells arbeitet nur mit Nummerischen Werten. Für "A" musst Du also 1 schreiben.

Gruß
Regina
ReginaR ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2019, 19:51   #6
Louislitt
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Zitat:

... na ja, ein Kinke ist zum Beispiel, dass das Cells-Objekt nicht mit Spaltenbuchstaben arbeiten kann. Cells arbeitet nur mit Nummerischen Werten. Für "A" musst Du also 1 schreiben.

Gruß
Regina

Also das funktioniert aber. Habe den Code zuvor als ein Sub ohne die Übergabe an ein Modul getestet.
Louislitt ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2019, 20:02   #7
Luschi
MOF Meister
MOF Meister
Standard

Hallo Louislitt,

richtig, Alles was in Vba funktioniert, wird genutzt, auch wenn M$ das schon lange abschaffen wollte:
bei Cells(10, "FE") weiß man sofort, welche Zelle gemeint ist als mit der Fingerzählerei bei Cells(10, 161) .

Gruß von Luschi
aus klein-Paris

PS: Bezeichnungen, die für Eigenschaften/Methoden von Vba genutzt werden, sollte man nicht unbedingt für eigene Sub/Function-Namen benutzen; also z.B. 'Sub Copy', ich mache dann daraus 'Sub Copyy'.

Geändert von Luschi (15.05.2019 um 20:06 Uhr).
Luschi ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.05.2019, 20:02   #8
ReginaR
MOF Profi
MOF Profi
Standard

OK, wusste gar nicht, dass Cells sich so "austricksen" lässt. Wieder was gelernt
ReginaR ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:40 Uhr.



Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.