Microsoft Excel

Herbers Excel/VBA-Archiv

Mit VBA auf geschlossene Exceldatei zugreiffen


Betrifft: Mit VBA auf geschlossene Exceldatei zugreiffen von: Valentina
Geschrieben am: 11.04.2018 11:44:53

Guten Tag Community,

da ihr mir beim letzten mal so gut geholfen habt, wende ich mich wieder an euch :)

Und zwar wollte ich wissen, ob es funktioniert, dass man mit einem Code eine Excelzeile einer 2. ExcelDatei überprüft, ob diese leer ist, und wenn sie leer ist, Werte aus einer Zelle der 1. Exceldatei in bestimmte Zellen der 2. Datei eben in dieser leeren Zeile einzufügen?

Hoffe, dass ich das nicht zu kompliziert beschrieben habe :D

Gruß,

Valentina

  

Betrifft: Lesen ja, Schreiben nein, also Öffnen! (owT) von: EtoPHG
Geschrieben am: 11.04.2018 11:51:22




  

Betrifft: AW: Lesen ja, Schreiben nein, also Öffnen! (owT) von: Valentina
Geschrieben am: 11.04.2018 11:54:58

Was meinst du damit genau?
Die geschlossene 2. Exceldatei darf sich von mir aus auch Öffnen, wenn was in ihr geschrieben wird.


  

Betrifft: In geschlossene Mappe schreiben? von: EtoPHG
Geschrieben am: 11.04.2018 12:08:12

Hallo Valentina,

Ich meine damit, dass man zwar (umständlich) aus einer geschlossen Mappe Daten lesen kann.
Will man aber Daten in derselben Mappe verändern, muss diese geöffnet werden.

Was erwartest Du jetzt? Das man Dir mit deinen rudimentären Angaben eine fixfertigen Code liefert?
Das ist nicht möglich!

Gruess Hansueli


  

Betrifft: AW: In geschlossene Mappe schreiben? von: Valentina
Geschrieben am: 11.04.2018 12:23:26

Hallo Hansueli,

nein erwarte ich natürlich nicht. Ich wollte nur mal wissen, ob das möglich ist und wollte dann genauere Angaben machen.

Zum Beispiel:

in meiner ersten Exceldatei steht in Zelle A1 der Vorname "Max" und in der Zelle B1 der Nachname "Mustermann".

Nun will ich in einer zweiten Exceldatei ab Zeile 1 nachsehen, ob die Zeile leer ist. Leider ist erst die 5. Zeile leer. In diese Zeile wird dann in Zelle A5 der Vorname "Max" geschrieben und in Zelle B5 der Nachname "Mustermann"

Ich hab mir das ganze bis jetzt so gedacht:

Dim Vorname as String
Dim Nachname as String

Vorname= Cells(1,1)
Nachname= Cells(1,2)

Dim ab As Workbook
Dim wb As Workbook, Hallo
Set wb = GetObject("C:\Users\XY\Desktop\Hey\Exceldatei2.xlsm") 'Damit will ich auf die 2. _
Exceldatei zugreifen
Set ab = GetObject("C:\Users\z003x0ye\Desktop\Du\Exceldatei1.xlsm") 'Hiermit will ich nicht  _
vergessen, welche Exceldatei die Quelle ist

i=1

Hallo = wb.Worksheets("Sheet1").Rows("i:i") 'Ich will ab Zeile 1 schauen.

if Hallo = "" Then

Workbooks (wb).Sheets("Sheet1"). Cells(i,1) = Vorname
Workbooks (wb).Sheets("Sheet1"). Cells(i,2) = Nachname

else
I=I+1
end if


Leider fehlt mir auch noch ein Ansatz, dass er dann immer und immer wieder meine if Funktion wiederholt, bis eben einmal eine leere Zeile gefunden wurde und dann eingefüllt wird.

Gruß,

Valentina


  

Betrifft: AW: In geschlossene Mappe schreiben? von: Rudi Maintaire
Geschrieben am: 11.04.2018 14:05:35

Hallo,
als Anregung:

Sub aaa()
  Dim wkbQ As Workbook, wkbZ As Workbook
  Dim strVorname As String, strNachname As String
  
  Set wkbQ = ActiveWorkbook
  strVorname = Cells(1, 1)
  strNachname = Cells(1, 2)
  
  On Error Resume Next
  Set wkbZ = Workbooks("Datei2.xlsx") 'Zielmappe offen?
  On Error GoTo 0
  If wkbZ Is Nothing Then
    'nicht offen -> öffnen
    Set wkbZ = Workbooks.Open("c:\test\datei2.xlsx")
  End If
  
  With wkbZ.Sheets("Sheet1").Cells(Rows.Count, 1).End(xlUp)
    .Offset(1, 0) = strVorname
    .Offset(1, 1) = strNachname
  End With
  
  wkbZ.Close True   'Zielmappe schließen und speichern
End Sub

Gruß
Rudi


  

Betrifft: AW: In geschlossene Mappe schreiben? von: Valentina
Geschrieben am: 16.04.2018 07:48:29

Hallo Rudi,

vielen Dank für die Hilfe! Das klappt super! :)

Würde es auch gehen, wenn die Zeilen nicht ganz leer sind, sondern zum Beispiel in spalte F was steht? Also nur die ersten beiden Zellen , wo ja was eingetragen sind, leer sind?

Vielen Dank!

Gruß,

Valentina


Beiträge aus dem Excel-Forum zum Thema "Mit VBA auf geschlossene Exceldatei zugreiffen"