Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1440to1444
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

nervi versteht es einfach nicht

nervi versteht es einfach nicht
03.08.2015 20:12:53
Thomas
Hallo,
ich nerve euch bestimmt langsam, aber ich verstehe es einfach nicht.
Warum geht das nicht. Ich möcht dem macro sagen das intxt im Tabellenblatt Filtereinstellungen steht mit intTxt = Worksheets("Filtereinstellung").Cells(10, 2).Column oder value oder oder keine Ahnung
und dann hier auslesen intArtS = Sheets("Auswertung").Cells.Find(intTxt).Column
aber ich bekomme immer ein denkste von excel. Ohne dem kann ich dies super Macro nicht nutzen oder nur sehr eingeschränkt.
Ich habe bestimmt schon 1000 versuche gestartet nix da. Selbst mit der hilfe von Matthias kriege ich es nicht hin. Aber es muss doch gehen? Habe mir auch schon ein Buch gekauft aber da steht auch nichts.
kann mir dies jemand kurz erklären was ich falsch mache?
liebe grüsse thomas
Kann jemand helfen?
Dim intTxt As String
On Error GoTo ErrExit
intTxt = Worksheets("Filtereinstellung").Cells(10, 2).Column '
intDatS = 10
lngDatR = 10
intArtS = 10
'Txt = Worksheets("Filtereinstellung").Range("B10") ' Cells.Find(Range("B5")).Column
lz = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
lngDatR = Sheets("auswertung").Cells.Find("Datum").Row
intDatS = Sheets("auswertung").Cells.Find("Datum").Column
intArtS = Sheets("Auswertung").Cells.Find(intTxt).Column ' alt Cells.Find("Datum).Column
intLetzteS = Sheets("auswertung").Cells(lngDatR, Columns.Count).End(xlToLeft).Column
Sub Tabelle_ordnen_Modul()
Dim lz, lz_einf, lngDatR, intLetzteZauswertung As Long
Dim intDatS, intArtS, intRang As Integer
Dim intSpalte1, intSpalte2 As Integer
Dim intLetzteS, intI, intMaxRang As Integer
Dim intTxt As String
On Error GoTo ErrExit
intTxt = Worksheets("Filtereinstellung").Cells(10, 2).Column
intDatS = 10
lngDatR = 10
intArtS = 10
'Txt = Worksheets("Filtereinstellung").Range("B10")    ' Cells.Find(Range("B5")).Column
lz = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
lngDatR = Sheets("auswertung").Cells.Find("Datum").Row
intDatS = Sheets("auswertung").Cells.Find("Datum").Column
intArtS = Sheets("Auswertung").Cells.Find(intTxt).Column  ' alt Cells.Find("Datum).Column
intLetzteS = Sheets("auswertung").Cells(lngDatR, Columns.Count).End(xlToLeft).Column
intLetzteZauswertung = Sheets("Filtereinstellungen").Cells(lngDatR, Columns.Count).End(xlToLeft) _
.Row
lz_einf = Sheets("auswertung").Cells(Rows.Count, intDatS).End(xlUp).Offset(1, 0).Row
intRang = 2
intMaxRang = Application.WorksheetFunction.Max(Sheets("Filtereinstellungen").Range("C1:C9"))
Application.ScreenUpdating = False
For intI = 2 To intLetzteZauswertung
If Sheets("Filtereinstellungen").Cells(intI, 3).Value = intRang Then
intSpalte1 = Sheets("Filtereinstellungen").Cells(intI, 2).Value
End If
Next intI
If intRang  0 Then
MsgBox "Fehler in Prozedur:" & vbTab & "'daten'" & vbLf & String(60, "_") & vbLf & vbLf &  _
_
IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & "Fehlernummer:" & vbTab & _
_
.Number & vbLf & vbLf & "Beschreibung:" & vbTab & .Description & vbLf, vbExclamation +  _
_
vbMsgBoxSetForeground, "VBA - Fehler in Prozedur - daten"
.Clear
End If
End With
On Error GoTo 0
End Sub

7
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
.Column kein String
03.08.2015 22:36:03
Frank
Hallo Thomas,
Dim intTxt As String
intTxt = Worksheets("Filtereinstellung").Cells(10, 2).Column

Die Kombination wird vermutlich nicht funktionieren. Was immer .Column zurück gibt - ein String wird es nicht sein.
Versuch's mal mit intTxt = Worksheets("Filtereinstellung").Cells(10, 2).value, wenn in Zelle B10 Deine Filtereinstellung als Text drinsteht.
Hilfreich ist auch immer, mitzuteilen, welche Fehlermeldung XL Dir an den Kopf wirft, und an welcher Stelle im Programmcode.
Grüsse,
Frank

AW: .Column kein String
04.08.2015 05:31:50
Thomas
Hallo Frank,
super das du dich damit beschäftigst.
Der Versuch geht leider auch nicht.
Der Fehler lautet "Fehler 9 Index ausserhalb des gültigen Bereichs".
liebe Grüsse Thomas.

Anzeige
AW: .Column kein String
04.08.2015 06:48:49
hary
Moin
Bist du den Code schon im Einzelschritt durchgegangen?
Hast du zwei verschiedene Blaetter?
 intDatS = Sheets("auswertung").Cells.Find("Datum").Column
intArtS = Sheets("Auswertung").Cells.Find(intTxt).Column  ' alt Cells.Find("Datum).Column

Gross und kleingeschrieben: Sheets("auswertung") und Sheets("Auswertung")
Der Fehler koennte sein das der Blattname nicht stimmt. Evtl. Leerzeichen drin.
gruss hary

AW: .Column kein String
04.08.2015 07:34:03
Thomas
Hallo,
auch Dir vielen dank das Du dich mit mein Problem beschäftigst.
Leider finde ich den Fehler nicht. Ich habe ein Beispiel erstellt in demm man den Fehler vielleicht besser finden kann. bitte nicht aufgeben.
vielen viele Dank
liebe grüsse thomas
https://www.herber.de/bbs/user/99303.xlsm

Anzeige
AW: .Column kein String
04.08.2015 08:08:33
Matthias
Hallo
Ich denke Du konntest es erfolgreich umsetzen?
https://www.herber.de/forum/archiv/1436to1440/t1439756.htm#1439819
und mal ganz nebenbei ...
Was soll denn das hier bitte bewirken?
Sub Ausgangsituation()
' Makro3 Makro

    Sheets("Daten").Select
Range("A10:T25").Select

Sheets("auswertung").Select
Rows("11:58").Select
Du "gehst" in das Blatt "Daten" und markierst den Bereich ("A10:T25")
und unmittelbar danach
"gehst" Du in das Blatt "auswertung" und markierst die Zeilen("11:58")
Warum warst Du dann vorher im Blatt "Daten" und markiert den Bereich ("A10:T25")?
Gruß Matthias

Anzeige
AW: .Column kein String
04.08.2015 10:40:27
Thomas
Hallo Matthias,
ich dachte auch wirklich das ich es mit deinen tipps hinbekomme. Aber es ging dann doch nicht.
das Macro Ausgangsituation() habe ich nur aufgezeichnet das man immer wieder die Ausgangssituation herstellen kann dieses macro ist nicht das Problem. Das Problemkind ist das macro " Sub Tabelle_ordnen_Modul_neu()" hier versuche ich in der Zeile intArtS = Sheets("auswertung").Cells.Find(intTxt).Column das intxt auszulagern. Wenn ich das so intArtS = Sheets("auswertung").Cells.Find("Zielort").Column schreibe geht alles ( siehe macro "Sub Tabelle_ordnen_Modul_alt()". Aber diese Spalte verändert sich ständig deshalb muss ich Sie irgentwie variable hinbekommen. Aus diesem Grund wollte ich Sie ins Blatt filtereinstellungen auslagern und Sie mir dort irgendwie mit mit Formeln suchen. ( ist in diesem Beispiel eingebaut). Es würde auch gehen wenn man dem Macro sagen würde nimm die 1. Spalte links von der gefundenen spalte n test Achtung diese Spalte ist in filtereinstellungen b2 als Rang definiert und auch variabel.
https://www.herber.de/bbs/user/99313.xlsm
vielen vielen dank für eure hilfe.
liebe grüsse thomas

Anzeige
gelöst vielen dank an alle
04.08.2015 21:14:17
Thomas
Hallo,
vielen dank an allen die an diesem Macro mitgearbeitet haben. Ich möchte auch MCO mit erwähnen den er hat das grundmacro geschrieben.
Vielen dank auch an Frank, hary und Matthias L ich habe alle eure Gedanken getestet und am ende war es eine kombination von allen. Allein hätte ich es nie geschafft. Die lösung seht Ihr unten vieleicht könnt ihr dies ja auch mal gebrauchen.
Jetzt geht mein projekt weiter ich bin glücklich.
Dieses Forum ist ein Hammer.
liebe grüsse thomas
Option Explicit
Sub MeineSuche()
Dim intsuS As Long
Dim lz, lz_einf, lngDatR, intLetzteZauswertung As Long
Dim intDatS, intRang, intArtS As Integer
Dim intSpalte1, intSpalte2 As Integer
Dim intLetzteS, intI, intMaxRang As Integer
'On Error GoTo KeinFund
On Error GoTo ErrExit
'intDatS = 10
'lngDatR = 10
'intArtS = 10
lz = ActiveSheet.UsedRange.SpecialCells(xlCellTypeLastCell).Row
lngDatR = Sheets("auswertung").Cells.Find("Datum").Row
intDatS = Sheets("auswertung").Cells.Find("Datum").Column
'intArtS = Sheets("auswertung").Cells.Find(intsuS).Column
intsuS = Sheets("Auswertung").Cells.Find(Worksheets("Filtereinstellung").Range("c5").Value). _
Column
intLetzteS = Sheets("auswertung").Cells(lngDatR, Columns.Count).End(xlToLeft).Column
intLetzteZauswertung = Sheets("Filtereinstellung").Cells(lngDatR, Columns.Count).End(xlToLeft). _
Row
lz_einf = Sheets("auswertung").Cells(Rows.Count, intDatS).End(xlUp).Offset(1, 0).Row
intRang = 2
intMaxRang = Application.WorksheetFunction.Max(Sheets("Filtereinstellung").Range("C1:C12"))
Application.ScreenUpdating = False
For intI = 2 To intLetzteZauswertung
If Sheets("Filtereinstellung").Cells(intI, 3).Value = intRang Then
intSpalte1 = Sheets("Filtereinstellung").Cells(intI, 2).Value
End If
Next intI
If intRang  0 Then
MsgBox "Fehler in Prozedur:" & vbTab & "'daten'" & vbLf & String(60, "_") & vbLf & vbLf &  _
_
IIf(Erl, "Fehler in Zeile:" & vbTab & Erl & vbLf & vbLf, "") & "Fehlernummer:" & vbTab & _
_
.Number & vbLf & vbLf & "Beschreibung:" & vbTab & .Description & vbLf, vbExclamation +  _
_
vbMsgBoxSetForeground, "VBA - Fehler in Prozedur - daten"
.Clear
End If
End With
On Error GoTo 0
End Sub

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige