Ergebnis aus Formel mit VBA übertragen
#1
Hallo,
bin ein Neuling in der Programmierung mit VBA und so langsam am verzweifeln wieso mein VBA Programm den Wert nicht in eine andere Excel Datei überträgt. Die Datei die übertragen werden soll, resultiert aus einer =Zählenwenns Funktion, die Zellen aus einer Arbeitsmappe zählt. Z.B.: 05/20 -> also in 5 von 20 Zellen steht etwas drin. Diese ausgegebene Zahl soll per VBA in eine andere Excel übertragen werden, allerdings bekomme ich bei der anderen Excel Datei immer eine Null ausgegeben. PS. Die Datei habe ich bereits vorher geöffnet. Die Datei aus der der Wert kommt heißt "Mo_Kontaktliste_10Uhr_11Uhr" und soll in die Datei "Terminuebersicht".

Sub Übertragen()

ThisWorkbook.Save
Workbooks("Mo_Kontaktliste_10Uhr_11Uhr").Worksheets("ini").Range("H10").Copy Destination:=Workbooks("Terminuebersicht").Worksheets("1").Range("B10")
Workbooks("Mo_Kontaktliste_10Uhr_11Uhr").Worksheets("ini").Range("H11").Copy Destination:=Workbooks("Terminuebersicht").Worksheets("1").Range("B11")

ThisWorkbook.Close


End Sub

Viele Dank für Hilfe!!
Top
#2
Hallo

auf den ersten Blick sieht der Code nicht schlecht aus.

Aber es bleiben Frage:

- in welcher Datei ist der VBA-Code
- stimmen die Thisworkbook.save und -.close
- sind die Dateien offen
- etc

mfg
Top
#3
Hallo Penny

1. Tipp:  bitte nicht verzweifeln, das gilt NICHT!  Ich könnte dir das auf 4 Seiten Word psychologisch erklaeren, hier die VBA Kurzfassung !!

Schau dir bitter deinen Code nach mal ganz genau in Ruhe an.  Ich brauchte 10 Sekunden um einen wichtigen Fehler auf Anhieb zu sehen.
Das setzte aber 25 Jahre Programmier Erfahrung voraus!  Hast du die??   (Und ich bin nicht der beste Programmierer)

Wo bitte steht dein ThisWorkbook.Save??  Am Anfang des Codes, oder am Ende, VOR Close???
Und was bitte wird (nicht) gespeichert, wenn du es im Code NICHT an der richtigen Stelle programmierst.??

mfg Gast 123
Top
#4
Herzlichen Dank, bin noch eine ganz neue Anfängerin seit knapp 2 Wochen.

Die Datei von der die Datei kommt heißt "Mo_Kontaktliste_10Uhr_11Uhr" und der Code ist auch in dieser und der Wert muss in die Datei "Terminuebersicht".
Die Dateien sind offen und Thisworkbook. save und -.close funktionieren.

Hatte Thisworkbook. save vor close stehen und am Anfang und es funktioniert auf beide Weisen nicht.
Top
#5
Hallo Penny_95,

die Exceldateien haben bestimmt jeweils auch eine Dateiendung (.xlsx ohne Makros, .xlsm mit Makros), die in Deinem Makro aber fehlen.
Als Zielblatt hast Du Worksheets("1") angegeben. Das funktioniert aber nur, wenn das Blatt wirklich den Namen 1 hat. Wenn stattdessen das erste Blatt der Datei gemeint ist, muss die 1 ohne Anführungszeichen geschrieben werden.
Vielleicht klappt es ja so:

Code:
Sub Uebertragen()
  With ThisWorkbook 'Workbooks("Mo_Kontaktliste_10Uhr_11Uhr.xlsm")
    .Worksheets("ini").Range("H10:H11").Copy Destination:=Workbooks("Terminuebersicht.xlsx").Worksheets(1).Range("B10")
    .Close SaveChanges:=True
  End With
End Sub

Gruß Uwe
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste