Live-Forum - Die aktuellen Beiträge
Datum
Titel
15.02.2025 18:43:21
15.02.2025 14:45:42
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Prüfe Tabelle für Tabelle nach bestimmten Inhalt

Prüfe Tabelle für Tabelle nach bestimmten Inhalt
15.09.2008 11:08:52
Tom
Hallo - schönen guten Morgen....
Ich habe in diesem Script einen Fehler, weis aber leider nicht wo. Eine Fehlermeldung als solches gibt es nicht aber das script macht halt nicht das was es soll.

Private Sub CommandButton5_Click()
Dim lngZ As Long
With Sheets("Mitarbeiterdaten")
Workbooks.Open kompletterpfad
For lngZ = 4 To .Cells(.Rows.Count, 7).End(xlUp).Row
If Not IsEmpty(.Cells(lngZ, 7)) Then
.Cells(lngZ, 9) = IIf((.Range("N2") = "X"), "Ja", "Nein")
End If
Next lngZ
End With
End Sub


Zur Erklärung:
In "Mitarbeiterdaten" stehen untereinander in der Spalte 7 die Namen für die in "Workbooks.Open kompletterpfad" zu findenden Tabellen. Jetzt soll in jeder Tabelle in "Workbooks.Open kompletterpfad" nachgesehen werden, ob in N2 ein "X" drin steht oder nicht. Wenn Ja, dann soll in "Mitarbeiterdaten" in der Spalte 9 ein "Ja" oder ein "Nein" zu finden sein.
Wo hab ich denn mein Denkfehler?
Der Tom

Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Prüfe Tabelle für Tabelle nach bestimmten Inhalt
15.09.2008 11:31:52
Tino
Hallo,
versuche es mal so.
Ungetestet!!!!
Option Explicit 
Private Sub CommandButton5_Click() 
Dim MeineDatei As Workbook 
Dim lngZ As Long 
    
   With ThisWorkbook.Sheets("Mitarbeiterdaten") 
   Set MeineDatei = Workbooks.Open(kompletterpfad) 
       
      For lngZ = 4 To .Cells(.Rows.Count, 7).End(xlUp).Row 
         If Not IsEmpty(.Cells(lngZ, 7)) Then 
          .Cells(lngZ, 9) = IIf((MeineDatei.Sheets(1).Range("N2") = "X"), "Ja", "Nein") 
         End If 
      Next lngZ 
   End With 
 
'MeineDatei.Close True 
Set MeineDatei = Nothing 
End Sub 


Beachte in MeineDatei.Sheets(1), die Tabelle anzupassen wo Deine Daten stehen!
Gruß Tino

Anzeige
AW: Prüfe Tabelle für Tabelle nach bestimmten Inhalt
15.09.2008 11:51:00
Tino
Hallo,
habe mir Deine Frage noch mal genauer durchgelesen.
So wie ich diese verstehe, müsste es so gehen.
Modul Modul1
Option Explicit 
 
Private Sub CommandButton5_Click() 
Dim MeineDatei As Workbook 
Dim lngZ As Long 
     
   With ThisWorkbook.Sheets("Mitarbeiterdaten") 
   Set MeineDatei = Workbooks.Open(kompletterpfad) 
        
      For lngZ = 4 To .Cells(.Rows.Count, 7).End(xlUp).Row 
         If Not IsEmpty(.Cells(lngZ, 7)) Then 
          .Cells(lngZ, 9) = IIf((MeineDatei.Sheets(.Cells(lngZ, 7)).Range("N2") = "X"), "Ja", "Nein") 
         End If 
      Next lngZ 
   End With 
  
'MeineDatei.Close True 
Set MeineDatei = Nothing 
End Sub 


Gruß Tino

Anzeige
AW: Prüfe Tabelle für Tabelle nach bestimmten Inhalt
15.09.2008 12:08:00
Tom
Hallo Tino,
Ich habe es so eingebaut und erhalte aber einen Laufzeitfehler 13
Typen unverträglich

Private Sub CommandButton5_Click()
Dim lngZ As Long
With ThisWorkbook.Sheets("Mitarbeiterdaten")
Workbooks.Open ("Mitarbeiterbewertung.xls")
For lngZ = 4 To .Cells(.Rows.Count, 7).End(xlUp).Row
If Not IsEmpty(.Cells(lngZ, 7)) Then
.Cells(lngZ, 9) = IIf((Workbooks("Mitarbeiterbewertung.xls").Sheets(.Cells(lngZ, 7)). _
Range("N2") = "X"), "Ja", "Nein")
End If
Next lngZ
End With
End Sub


So würde es wohl ohne Variablen aussehen. Wir machen das mal ohne Variablen, dann wirds einfacher...das kann ich ja danach wieder ändern.
Der tom

Anzeige
AW: Prüfe Tabelle für Tabelle nach bestimmten Inhalt
15.09.2008 12:55:56
Tino
Hallo,
habe dies mal nachgebaut, so geht es.
Modul Modul1
Option Explicit 
 
Private Sub CommandButton5_Click() 
Dim MeineDatei As Workbook 
Dim lngZ As Long 
Dim Pfad As String 
Pfad = "J:\1 Forum\Mitarbeiterbewertung.xls" 'Pfad+Datei 
   With ThisWorkbook.Sheets("Mitarbeiterdaten") 
   Set MeineDatei = Workbooks.Open(Pfad) 
        
      For lngZ = 4 To .Cells(.Rows.Count, 7).End(xlUp).Row 
         If Not IsEmpty(.Cells(lngZ, 7)) Then 
          .Cells(lngZ, 9) = _
          IIf((MeineDatei.Sheets(.Cells(lngZ, 7).Value).Range("N2") = "X"), "Ja", "Nein") 
         End If 
      Next lngZ 
   End With 
  
'MeineDatei.Close False 'schließen ohne speichern 
Set MeineDatei = Nothing 
End Sub 


Wichtig, Du musst auch den Pfad mit übergeben!
Gruß Tino

Anzeige
AW: Prüfe Tabelle für Tabelle nach bestimmten Inhalt
15.09.2008 15:11:04
Tom
Vielen Dank fürs nachbauen!!!!
Also so geht es...hab es noch bischen für meine Bedürfnisse angepasst, aber genau so funktioniert es wunderbar!
Vielen Dank!!!
Der Tom

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige