Live-Forum - Die aktuellen Beiträge
Datum
Titel
29.03.2024 13:14:12
28.03.2024 21:12:36
28.03.2024 18:31:49
Anzeige
Archiv - Navigation
1332to1336
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

Variablen Bereich markieren - Spalte und Zelle

Variablen Bereich markieren - Spalte und Zelle
25.10.2013 07:24:52
Albert
Guten Morgen zusammen,
ich versuch einen variablen Bereich zu markieren.
Ausprobiert hab ich schon sämtliche Codes, aber so recht scheint mir das nicht zu funktionieren.
Private Sub Drucken_Click()
Dim WkSh_Z  As Worksheet
Dim nSpalte_Z As Long
Dim nZeile_Z As Long
'Sheet anwählen
Sheets("3.Ref - 3.2.Maße - 3.3.Matrix").Select
'Worksheet für letzte Spalte definieren
Set WkSh_Z = ThisWorkbook.Worksheets("3.Ref - 3.2.Maße - 3.3.Matrix")
'Maximale Zeilenanzahl ermitteln
'Letzte Spalte suchen
nSpalte_Z = WkSh_Z.Cells(4, Columns.Count).End(xlToLeft).Column
'Letzte Zeile suchen
nZeile_Z = Range("A1000").End(xlUp).Row  'Bringt den Wert 10
nZeile_Z = Range("B1000").End(xlUp).Row 'Bringt den Wert 38
nZeile_Z = Range("C1000").End(xlUp).Row 'Bringt den Wert 1
nZeile_Z = Range("D1000").End(xlUp).Row  'Bringt den Wert 1
nZeile_Z = Range("M1000").End(xlUp).Row  'Bringt den Wert 6
Test = Range(Cells(1, 1), Cells(nZeile_Z, nSpalte_S)).Select
MsgBox nZeile_Z
End Sub
Mein letzter Code. Mich verwirrt allerdings, dass keines der gelieferten Ergebnisse zur Tabelle passen, denn der letzte Eintrag befindet sich in der Zeile 7.
Was hab ich falsch gemacht?
Danke schon mal im Voraus für eure Hilfe.
Gruß
A.

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Variablen Bereich markieren - Spalte und Zelle
25.10.2013 07:41:06
hary
Moin Albert
Nutze mal die with Anweisung.
Private Sub Drucken_Click()
Dim WkSh_Z  As Worksheet
Dim nSpalte_Z As Long
Dim nZeile_Z As Long
'Sheet anwählen
Sheets("3.Ref - 3.2.Maße - 3.3.Matrix").Select
'Worksheet für letzte Spalte definieren
Set WkSh_Z = ThisWorkbook.Worksheets("3.Ref - 3.2.Maße - 3.3.Matrix")
'Maximale Zeilenanzahl ermitteln
'Letzte Spalte suchen
With WkSh_Z
nSpalte_Z = .Cells(4, .Columns.Count).End(xlToLeft).Column
'Letzte Zeile suchen
nZeile_Z = .Range("A1000").End(xlUp).Row  'Bringt den Wert 10
nZeile_Z = .Range("B1000").End(xlUp).Row 'Bringt den Wert 38
nZeile_Z = .Range("C1000").End(xlUp).Row 'Bringt den Wert 1
nZeile_Z = .Range("D1000").End(xlUp).Row  'Bringt den Wert 1
nZeile_Z = .Range("M1000").End(xlUp).Row  'Bringt den Wert 6
Test = .Range(.Cells(1, 1), .Cells(nZeile_Z, nSpalte_S)).Select
End With
MsgBox nZeile_Z
End Sub

gruss hary

Anzeige
With ist ja nicht falsch, aber ist es nötig?
25.10.2013 08:52:35
Matthias
Hallo hary
Da mit:
'Sheet anwählen
Sheets("3.Ref - 3.2.Maße - 3.3.Matrix").Select

das Blatt bereits das aktive Blatt ist kann doch auf SET und With verzichtet werden, oder?
Gruß Matthias

Variable richtig geschrieben?
25.10.2013 07:47:48
Matthias
Hallo
Einmal
nSpalte_Z = ...
dann aber:
Test = Range(Cells(1, 1), Cells(nZeile_Z, nSpalte_S)).Select
Schreibfehler?
Gruß Matthias

und "nZeile_Z" wird immer überschrieben!
25.10.2013 08:02:42
Matthias
Hallo
Was macht das denn für einen Sinn?

nZeile_Z = Range("A1000").End(xlUp).Row  'Bringt den Wert 10
nZeile_Z = Range("B1000").End(xlUp).Row  'Bringt den Wert 38
nZeile_Z = Range("C1000").End(xlUp).Row  'Bringt den Wert 1
nZeile_Z = Range("D1000").End(xlUp).Row  'Bringt den Wert 1
nZeile_Z = Range("M1000").End(xlUp).Row  'Bringt den Wert 6
Die ersten 4 Zeilen kannst Du Dir doch sparen, Du überschreibst doch den Inhalt der Variable ständig
Gruß Matthias

Anzeige
Funktioniert
25.10.2013 08:28:32
Albert
Hallo zusammen,
danke für eure Hinweise.
Anscheinend war es doch die Kombination aus With-Block und Schreibfehler.
@Matthias: ich wollte verdeutlichen, dass die verschiedenen Spalten merkwürdige Ergebnisse bringen. Die Zeilen stehen sonst nicht so im Block.
Danke an euch, soweit funktioniert es.
Gruß und schönes Wochenende
A.

Tipp: benutze immer -> Option Explicit ...
25.10.2013 08:43:39
Matthias
Hallo
Option Explicit zwingt Dich Variablen zu deklarieren!
So würdest schon beim Testen merken das VBA meckert, wenn da was nicht ganz klar ist.
Das kannst Du auch in VBA unter:

  • Extras

  • Optionen

  • Register: Editor

  • Variablendeklaration erforderlich


fest einstellen.
Gruß Matthias
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige