VBA Werte aus einem Sheet an ein anderes Übergeben

Hallo zusammen,

bin neu hier und schon seit einiger Zeit am Suchen im Internet, aber irgendwie finde ich nicht das passende.
Mein Problem ist folgendes:
Ich möchte in einer Art Maske Werte (sowohl Zahlen als auch Worte) eingeben lassen vom Benutzer. Wenn dieser damit fertig ist, soll er den Button klicken, woraufhin eine neue Datei geöffnet werden soll. Soweit habe ich das auch schon allein hinbekommen.
Nun möchte ich aber, dass die Daten aus dem ersten excel Sheet ans zweite, aber nur an bestimmte Positionen übergeben werden, um dort Berechnungen durchführen zulassen (nur für zahlen natürlich, Worte sollen so übergeben werden und direkt eingetragen werden).
Da ich VBA technisch alles andere als versiert bin, komme ich auch auf keinen geeigneten ast um mich vielleicht selbst durchzuhangeln.

Hoffe ihr könnt mir helfen! :smile:

MfG
Matze

Hallo Matze,

Ich möchte in einer Art Maske Werte (sowohl Zahlen als auch
Worte) eingeben lassen vom Benutzer. Wenn dieser damit fertig
ist, soll er den Button klicken, woraufhin eine neue Datei
geöffnet werden soll. Soweit habe ich das auch schon allein
hinbekommen.

dann zeige mal was du da schon hast, GGfs. Beispielmappe hochladen mit FAQ:2606

Gruß
Reinhard

also hier mal meine idee (etwas abgewandelt natürlich)

http://rapidshare.com/files/263174263/idee.xls.html

keine ahnung ob das so funktioniert…seh mit dem forum hier noch nicht ganz durch. *rot werd* man möge mir das verzeihen! :smile:

ja wie du siehst, ein paar eingaben und der button. habe die datei die es zu öffnen gilt nun nicht mit hochgeladen, da das bei mir momentan eh nur eine leere datei is, die ich später beschreiben wollte, aber ich weiß halt schon an welche positionen ich diverse sachen geschrieben haben möchte.

hoffe das war hilfreich. :-/

http://rapidshare.com/files/263174263/idee.xls.html
ja wie du siehst, ein paar eingaben und der button. habe die
datei die es zu öffnen gilt nun nicht mit hochgeladen, da das
bei mir momentan eh nur eine leere datei is, die ich später
beschreiben wollte, aber ich weiß halt schon an welche
positionen ich diverse sachen geschrieben haben möchte.

Hallo Thana,

ich würde den Code des CommanButtons wie nachfolgend schreiben.
Ggfs. noch den Fehler abfangen falls die Mappe am angegeben Ort nicht existiert bzw. dann eine Mappe mit diesem Namen erzeugen.

„aber ich weiß halt schon an welche positionen ich diverse sachen geschrieben haben möchte“

Das stimmt so. Kannst du uns das auch mitteilen, wäre irgendwie hilfreich :smile:)

Gruß
Reinhard

Private Sub Kalkulation\_Click()
Dim wkb As Workbook, Offen As Boolean
For Each wkb In Workbooks
 If wkb.Name = "test.xls" Then Offen = True
Next wkb
If Not Offen Then Workbooks.Open "c:\test\test.xls"
End Sub

hey toll, das probier ich gleich mal aus.

Als Beispiel für das Zahlen übergeben wäre Zelle G11 aus idee.xls.
Diese sollte dann in Zelle C7 auf Tabellenblatt2 von test.xls
von dort aus würde ich dann mit meinen berechnungen zu greifen wollen. und das Ergebnis dann auf C8 auf Tabellenblatt1 von text.xls übergeben wollen.

und Text sollte zum Beispiel die Zelle C11 aus idee.xls auf B5 auf Tabellenblatt1 in text.xls

Als Beispiel für das Zahlen übergeben wäre Zelle G11 aus
idee.xls.
Diese sollte dann in Zelle C7 auf Tabellenblatt2 von test.xls
von dort aus würde ich dann mit meinen berechnungen zu greifen
wollen. und das Ergebnis dann auf C8 auf Tabellenblatt1 von
text.xls übergeben wollen.

und Text sollte zum Beispiel die Zelle C11 aus idee.xls auf B5
auf Tabellenblatt1 in text.xls

Hallo Thana,

*seufz* ich nuschel wohl heute wieder.
Also frage ich mal ganz direkt:
Aus Mappe idee.xls Blatt Kalkuationsmaske, wohin in test.xls sollen
C11,C13,C15,G11,G13,G15,I15,K15 ?

Gruß
Reinhard

Das habe ich doch beispielhaft schon angegeben oder nicht?! *verwirrt bin*

C11 --> tabellenblatt1 von test.xls auf B4
C13 --> tabellenblatt1 von test.xls auf B5
C15 --> tabellenblatt1 von test.xls auf B6
G11 --> tabellenblatt2 von test.xls auf H25
G13 --> tabellenblatt2 von test.xls auf H28
G15,I15 und K15 --> tabellenblatt2 von test.xls auf H30,I30 und J30

hoffe das ist nun verständlicher.

Tabellenblatt1 von test.xls kann auch gleich als „Ausgabe“ bezeichnet werden.
Tabellenblatt2 von test.xls kann als „Berechnungen“ bezeichnet werden.

Hallo Thana,

Das habe ich doch beispielhaft schon angegeben oder nicht?!

Möglich, aber wenn du 10 Zellen verteilt in ein anderes Blatt kopieren willst so reicht ein Beispiel nicht.
Wie heißen die 10 Zielzellen ist wichtig.

*verwirrt bin*

Kann ich nicht beurteilen :smile:)

Private Sub Kalkulation\_Click()
Dim wkb As Workbook, Offen As Boolean
For Each wkb In Workbooks
 If wkb.Name = "test.xls" Then Offen = True
Next wkb
If Not Offen Then Workbooks.Open "c:\test\test.xls"
With ThisWorkbook.Worksheets("Kalkulationsmaske")
 .Range("C11").Copy Destination:=Workbooks("test.xls").Worksheets("Ausgabe").Range("B4")
 .Range("C13").Copy Destination:=Workbooks("test.xls").Worksheets("Ausgabe").Range("B5")
 .Range("C15").Copy Destination:=Workbooks("test.xls").Worksheets("Ausgabe").Range("B6")
 .Range("G11").Copy Destination:=Workbooks("test.xls").Worksheets("Berechnungen").Range("H25")
 .Range("G13").Copy Destination:=Workbooks("test.xls").Worksheets("Berechnungen").Range("H28")
 .Range("G15").Copy Destination:=Workbooks("test.xls").Worksheets("Berechnungen").Range("H30")
 .Range("I15").Copy Destination:=Workbooks("test.xls").Worksheets("Berechnungen").Range("I30")
 .Range("K15").Copy Destination:=Workbooks("test.xls").Worksheets("Berechnungen").Range("J30")
End With
End Sub

Ggfs. könntest du noch als letzte Codezeile einbauen:
Workbooks(„test.xls“).close savechanges=true

Kann auch heißen „savechanges:=True“

Aber das wird ja in der Hilfe zu .Close erläutert.

Gruß
Reinhard

vielen dank!
Werds morgen direkt mal ausprobieren! :smile:

dein letzter punkt nützt mir nix, da die geöffnete Datei test.xls jedesmal in einen neuen dateinamen gespeichert werden muss. aber trotzdem danke! ich behalts im Hinterkopf!