Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Suche dringen nach einer Erklärung

Forumthread: Suche dringen nach einer Erklärung

Suche dringen nach einer Erklärung
Gregor
Hallo zusammen
Ich habe in einer Datei viele umfangreiche Makros. Ua. eruiere ich in vielen Makros Spalten-No, zB. mit:
Spalte_Nutzlänge = Worksheets("Tabelle1").Rows(1).Find("Nutzlänge", LookAt:=xlWhole).Column
Das funktioniert bestens, auch wenn die gesuchte Spalte mit dem Code "Columns("C:G").Hidden = True" ausgeblendet ist. Ich habe nun untenstehendes neues Makro geschrieben. Das funktiniert nur, wenn die Spalten eingeblendet sind, ansonsten erhalte ich die Meldung "Objektvariable oder With-Blockvariable nicht festgelegt". Schlimmer noch, nachdem ich dieses Makro gestartet habe, erscheint diese Fehlermeldung auch bei allen anderen Makros, sobald der Code Spalten-No eruieren aktiv wird und die gesuchte Spalte ausgeblendet ist. Bei eingeblendeten Spalten funktioniert es, aufgrund der vielen Spalten sind jedoch die Meisten ausgeblendet. Woran kann das liegen, ich finde keine Erklärung und somit auch keine Lösung. Die Variablen sind selbstverständlich zugewiesen.
Sub Test ()
Spalte_Nutzlänge = Worksheets(Tabellenblatt).Rows(1).Find("Nutzlänge", LookAt:=xlWhole).Column
Spalte_Kt = Worksheets(Tabellenblatt).Rows(1).Find("Kant", LookAt:=xlWhole).Column
With Worksheets(Tabellenblatt)
Set rng = .Columns(Spalte_Kt).Find(Kant, LookIn:=xlValues, LookAt:=xlWhole)
If Not rng Is Nothing Then
firstAddress = rng.Address
Zeile = rng.Row
ZeileEnd = IIf(IsEmpty(.Cells(Zeile + 1, 1)), IIf(IsEmpty(.Cells(.Cells(Zeile, 1).End( _
xlDown).Row - 1, Spalte_Nutzlänge)), .Cells(.Cells(Zeile, 1).End(xlDown).Row, Spalte_Nutzlänge).End(xlUp).Row, .Cells(Zeile, 1).End(xlDown).Row - 1), Zeile)
'--- bestimmt letzte Zeile Tabelle zum Einfügen
intLastRowPaste = Worksheets(Blattname).Cells(Rows.Count, Spalte_Nutzlänge).End(xlUp). _
Row + 1
'--- Kopieren
.Range(.Cells(Zeile, 1), .Cells(ZeileEnd, intLastColumn)).Copy Worksheets(Blattname). _
Cells(intLastRowPaste, 1)
Do
Set rng = .Columns(Spalte_Kanton).FindNext(rng)
Zeile = rng.Row
If rng.Address = firstAddress Then Exit Do
ZeileEnd = IIf(IsEmpty(.Cells(Zeile + 1, 1)), IIf(IsEmpty(.Cells(.Cells(Zeile, 1). _
End(xlDown).Row - 1, Spalte_Nutzlänge)), .Cells(.Cells(Zeile, 1).End(xlDown).Row, Spalte_Nutzlänge).End(xlUp).Row, .Cells(Zeile, 1).End(xlDown).Row - 1), Zeile)
'--- bestimmt letzte Zeile Tabelle zum Einfügen
intLastRowPaste = Worksheets(Blattname).Cells(Rows.Count, Spalte_Nutzlänge).End( _
xlUp).Row + 1
'--- Kopieren
.Range(.Cells(Zeile, 1), .Cells(ZeileEnd, intLastColumn)).Copy Worksheets(Blattname) _
.Cells(intLastRowPaste, 1)
Loop
End If
End With
End Sub
Wo liegt das Über dieser Ursache, ich bin am Verzweifeln und für eine Hilfe sehr dankbar.
Gregor
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Vermute, liegt an .Find! Versuch die klassische...
21.05.2010 18:29:19
Luc:-?
…Lösung mit einer Suchschleife, Gregor,…
For Each zelle In zellbereich… oder in der Art!
FroPf + Gruß, Luc :-?
AW: Suche dringen nach einer Erklärung
22.05.2010 01:44:49
Gerd
Hallo Gregor,
Zellen in ausgeblendeten Zeilen oder Spalten kann man nicht kopieren.
Sub test3()
Application.ScreenUpdating = False
Worksheets("Tabelle2").Columns("B:D").Hidden = False
Worksheets("Tabelle2").Columns("B:D").Hidden = True
Application.ScreenUpdating = True
End Sub
Gruß Gerd
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