Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

VBA CODE für die Auswertung
#1
Hallo zusammen,
ich benötige ein Code für folgendes Problem:
Allgemein möchte ich Textfiles einlesen aber mit einer Bedingung.


Ich habe ein Exceldatei mit folgender Tabelle;

PHP-Code:
Fläche    Nutzung            Pfad
0    Kinderzimmer    C
:\Users\
0    Badezimmer    C:\Users\
0    WC            C:\Users\
0    Wohnzimmer    C:\Users\
20    Schlafzimmer    C:\Users\
20    Dachboden    C:\Users\
40    Keller            C:\Users\
120    Flur            C:\Users\
40    Elternzimmer    C:\Users\
60    Küche            C:\Users
 Nun soll der Code die erste Spalte abfahren.
Bedingung: Es sollen nur die Dateien eingelesen werden bei denen die Fläche größer ist als 0!
Alle Dateien befinden sich im gleichen Ordner. Der Dateiname besitzt immer den gleichen Namen wie die Nutzung.


Kann mir hierbei jemand helfen?
PHP-Code:
     W/qm                    W/qm                                     W/qm                             W/qm      
+0.0000000000000000E+00          +0.0000000000000000E+00    +0.0000000000000000E+00+0.0000000000000000E+00 
Antworten Top
#2
Hallo

ich weiss nicht was ein PHP Code ist??  Als Makro würde ich über eine For Next Schleife mit IF Then arbeiten, den Wert in der Spalte "Flaeche" prüfen:  IF  Flaeche(xx) > 0 Then ....   Wie man das in den PHP Code umsetzt weiss ich nicht?  Vielleicht hilft es als Tipp ja weiter.

mfg  Gast 123
Antworten Top
#3
Hallo das PHP Fenster wurde nur angewandt um hier im Forum die Tabelle richtig anzuzeigen. Grüße
Antworten Top
#4
Zitat:Bedingung: Es sollen nur die Dateien eingelesen werden bei denen die Fläche größer ist als 0!
Wie sieht denn ein Raum mit einer Fläche < 0 aus?
Schöne Grüße
Berni
Antworten Top
#5
Hallo Berni, es gibt keine Räume kleiner 0. Mit dieser Bedingung größer 0 möchte ich nur verhindern das die hinterlegten Nutzungen mit A = 0 ( Textfiles) nicht eingelesen werden.
Antworten Top
#6
Nach einiger Recherche;

Sub Datei_öffnen_in_bestimmter_Zelle()


Dim Pfad As String
Pfad = ThisWorkbook.Worksheets("Tabelle1").Range("C8").Value
    
With Workbooks.Open(Filename:=Pfad)

  .ActiveSheet.Range("A3:DN6000").Copy Destination:=ThisWorkbook.Worksheets("Tabelle2").Range("A3")
  .Close savechanges:=False 'oder true, wenn Änderungen gespeichert werden sollen
End With
End Sub

Kann mir jemand helfen, dass als Schleife umzubauen? Es soll ja die Spalte "Fläche" durchlaufen und nur die Textfiles öffnen bei denen die Fläche > 0 ist.

Und am besten sollen die geöffneten Textfiles als Arbeitsblatt unten im Register auftauchen.
Bin für jede Hilfe dankbar.
Antworten Top
#7
ungetestet

Code:
Sub Datei_öffnen_in_bestimmter_Zelle()
Dim Pfad As String, i As Long, freie As Long


With Sheets("Tabelle1")
   freie = Sheets("Tabelle2").Cells(.Rows.Count, "A").End(xlUp).Row + 1
   For i = 2 To .Cells(.Rows.Count, "A").End(xlUp).Row
       If .Cells(i, "A") > 0 Then
           Pfad = ThisWorkbook.Worksheets("Tabelle1").Range("C" & i).Value
           With Workbooks.Open(Filename:=Pfad)

               .ActiveSheet.Range("A3:DN6000").Copy _
               Destination:=ThisWorkbook.Worksheets("Tabelle2").Range("A" & freie)
               .Close savechanges:=False 'oder true, wenn Änderungen gespeichert werden sollen
           End With
       End If
   Next i
End With
End Sub
Schöne Grüße
Berni
Antworten Top
#8
Hallo Berni,
vielen dank für deine Hilfe.
Leider kommt immer noch ein Fehler deshalb habe ich die xls und textdateien hochgeladen.
Ich würde mich freuen wenn du nochmal einen Blick drauf werfen könntest.
Grüße


Angehängte Dateien
.txt   Kinderzimmer.txt (Größe: 994 Bytes / Downloads: 10)
.txt   Klo.txt (Größe: 994 Bytes / Downloads: 8)
.txt   Schlafzimmer.txt (Größe: 994 Bytes / Downloads: 8)
.xlsx   TESTDATEI.xlsx (Größe: 8,61 KB / Downloads: 8)
.txt   WC.txt (Größe: 994 Bytes / Downloads: 9)
Antworten Top
#9
Hallo,

"Leider kommt immer noch ein Fehler" hilft mir leider gleich viel wie dem Mechaniker "mein Auto hat was". Welchen Fehler bekommst du? Hast du den Code mit F8 im Einzelschrittmodus durchlaufen lassen? Falls ja, in welcher Zeile bleibt der Code stehen?

Da deine Testdatei schlecht aufgebaut ist, kann ich mir schon diverse Gründe vorstellen, warum der Code nicht funktioniert hat (ist aber reine Mutmaßung, siehe oben):
- Die Daten stehen "mitten im Raum", wieso startest du nicht in Zelle A1? Darauf ist der Code ausgelegt. Die Raumflächen müssen in Spalte A stehen, Überschriften in Zeile 1, erster Eintrag in Zeile 2
- Du hast keine Tabelle2 in deiner Datei. Dann weiß Excel natürlich nicht, wohin die Daten kopiert werden sollen.
- Der Pfad in Spalte 3 ist falsch

Zu meinem Code noch ein Hinweis. Schneide die Zeile 
Code:
freie = Sheets("Tabelle2").Cells(.Rows.Count, "A").End(xlUp).Row + 1
aus und füge sie unterhalb der Zeile
Code:
Pfad = ThisWorkbook.Worksheets("Tabelle1").Range("C" & i).Value
wieder ein. Das hatte ich übersehen.

Wenn die obigen Punkte in deiner Datei richtig sind, läuft der Code tadellos durch.
Schöne Grüße
Berni
[-] Folgende(r) 1 Nutzer sagt Danke an MisterBurns für diesen Beitrag:
  • ilmiomondo
Antworten Top
#10
Hallo Berni,
der Code funktioniert soweit. Dankeschön. Die Beispieldatei war schlecht aufgebaut (sorry!). Aber es funktioniert. 
Erstmal richtig geil das es durchläuft und überprüft ob die Fläche größer oder gleich null ist.Top.

Meine nächste Frage wäre ob es möglich wäre die Textfiles die eingelesen werden einzeln als Arbeitsblatt unten im Register erscheinen zu lassen anstatt alle in Tabelle 2 zu kopieren?

Danke für deine Hilfe!!!
Antworten Top


Gehe zu:


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