Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1640to1644
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

VBA Zeilennummer aus Zeller übernehmen

VBA Zeilennummer aus Zeller übernehmen
04.09.2018 17:32:34
Marco
Hallo zusammen,
ich würde mich über eine kurze Hilfestellung freuen:
Ich Berechne in einer Zelle eine bestimmte Zahl, die einen Zeilenbezug darstellen soll. Diese Zeile soll mit VBA angesteuert werden und dort die Zeilenhöhe verändert werden...läuft natürlich nicht: Ausgelöst wird das Sub, wenn in einem Bereich des Tabellenblattes Eingaben erfolgen.
i = ActiveCell.Row
hier steht die Zahl die die Zeile berechnet, z.B. 42: cells(i,103).value
Rows(i).Offset(Cells(i, 103).Value).rowheight = 100
oder, na ja...na dann :-(
Mist...Danke
Marco
DAnke

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

Betreff
Datum
Anwender
Anzeige
AW: VBA Zeilennummer aus Zeller übernehmen
04.09.2018 17:43:29
onur
"Ich Berechne in einer Zelle eine bestimmte Zahl, die einen Zeilenbezug darstellen soll"
Welche Zahl? In welcher Zelle? In irgendeiner Zelle oder einer Bestimmten? Relativer oder absoluter Zeilenbezug (Wenn Zahl=3 Zeile 3 verändern oder aktuelle Zeilennummer+3?
"Ausgelöst wird das Sub, wenn in einem Bereich des Tabellenblattes Eingaben erfolgen".
GAR NIX wird ausgelöst, solange der Code nicht im Change-Event des Blattes ist.
AW: VBA Zeilennummer aus Zeller übernehmen
04.09.2018 18:59:28
Marco
Danke für die schnelle Antwort.
Der Code ist bereits im Change Event des Blattes und springt an.
Die Zahl steht in in Spalte CY, also die 103 Spalte des Blattes.
In jeder einzelnen Zeile steht die "Zahl". Sie stellt den Abstand der aktuellen Zeile zu einer bestimmten Zeile dar. Also wenn in Zeile 100 die Zahl 42 steht, dann soll Zeile 142 angesprochen werden (mit der Änderung der Zeilenhöhe auf "Rowheigt =100).
Danke für deine Mühe...
Marco
Anzeige
AW: VBA Zeilennummer aus Zeller übernehmen
04.09.2018 19:14:13
onur
Wenn der Code im Change-Event steht - Warum benutzt du ActiveCell?
dim z, v
z = Target.Row
v= cells(i,103).value
Rows(z+v).RowHeight = 100

AW: VBA Zeilennummer aus Zeller übernehmen
04.09.2018 18:59:30
Marco
Danke für die schnelle Antwort.
Der Code ist bereits im Change Event des Blattes und springt an.
Die Zahl steht in in Spalte CY, also die 103 Spalte des Blattes.
In jeder einzelnen Zeile steht die "Zahl". Sie stellt den Abstand der aktuellen Zeile zu einer bestimmten Zeile dar. Also wenn in Zeile 100 die Zahl 42 steht, dann soll Zeile 142 angesprochen werden (mit der Änderung der Zeilenhöhe auf "Rowheigt =100).
Danke für deine Mühe...
Marco
Anzeige
AW: VBA Zeilennummer aus Zeller übernehmen
04.09.2018 19:09:09
Werner
Hallo Marco,
und warum bitte zeigst du dann hier nur zwei Codezeilen?
Was soll passieren?
Annahme:
Eine Änderung wird in Zeile 10 durchgeführt
in CY10 steht als Formelergebnis 20
Zeile 10 + Wert CY10 (wäre hier dann die Zeile 30)
Also in Zeile 30 die Zeilenhöhe einstellen?
Gruß Werner
AW: VBA Zeilennummer aus Zeller übernehmen
05.09.2018 08:21:25
Marco
Hallo zusammen,
vielen Dank für Eure Hilfe. Ich habe es zusammen und es läuft. Für mich ist der folgende Code praktisch eine Mondlandung. Es werden bei verbundenen Zeilen automatisch die Zeilenhöhe eingestellt. Anbei der Code (vielleicht braucht ihn mal jemand), Kritik gerne (weil völliger Anfänger):
Sub neu_Fragen_Zeilenhöhe_für_Anmerkungen()
' Sub passt die Zeilenhöhe von verbundenen Zeilen an. Die Zeilen sind in G und H jeweils in Dreierschritten verbunden. Teilweise sind Zeilen ausgeblendet.
' Der die Zeilenhöhe bestimmende Text wird in identisch große, nicht verbundene Zelle kopiert. Diese Zelle bestimmt die Höhe mit autofit.
' Sub wird ausgelöst bei jeder Eingabe im Tabellenblatt durch:
'

Private Sub Worksheet_Change(ByVal Target As Excel.Range)
'If Not Intersect(Target, Range("g1:h440")) Is Nothing Then
'Call neu_Fragen_Zeilenhöhe_für_Anmerkungen
'End If
'End Sub

Application.ScreenUpdating = False
Dim v, i, j
i = ActiveCell.Row
j = ActiveCell.Column
v = Cells(i, 103).Value 'Hier wird die Zeilennummer der nächsthöheren nicht versteckten Zeile berechnet. Da immer 3 Zeilen verbunden hier die unterste der 3 Zeilen.
'Wenn versteckte Zeilen:
If Cells(i, 99).Value = "stopp" Then '"Stopp" markiert die erste Zeile nach versteckten Zeilen.
Rows(v).Select
Selection.Rows.AutoFit
Rows(v).Offset(-1).Select 'Zeilen werden mit autofit verändert. Sollwert ist Fix 21
ActiveCell.RowHeight = 21
Rows(v).Offset(-2).Select
ActiveCell.RowHeight = 21
Cells(i, j).Select
'Verteilung der von autofit eingestellten Höhe der einen Zeile auf die 3 Zeilen.
If Rows(v).RowHeight > 40 Then
Rows(v).RowHeight = Rows(v).RowHeight - 35
Else
Rows(v).RowHeight = 21
End If
Exit Sub
'Wenn keine versteckte Zeilen:
Else
Rows(i).Offset(-1).Select
Selection.Rows.AutoFit
Rows(i).Offset(-2).Select
ActiveCell.RowHeight = 21
Rows(i).Offset(-3).Select
ActiveCell.RowHeight = 21
End If
'Verteilung der von autofit eingestellten Höhe der einen Zeile auf die 3 Zeilen.
If Rows(i).Offset(-1).RowHeight > 40 Then
Rows(i).Offset(-1).RowHeight = Rows(i).Offset(-1).RowHeight - 35
Else
Rows(i).Offset(-1).RowHeight = 21
End If
'Versteckte Zeilen werden durch das Makro eingeblendet. Die versteckten Zeilen sind mit "X" markiert und werden wieder versteckt.
If Cells(i - 1, 82).Value = "X" Then
Rows(i - 1).EntireRow.Hidden = True
Rows(i - 2).EntireRow.Hidden = True
Rows(i - 3).EntireRow.Hidden = True
Cells(i, j).Select
End If
Cells(i, j).Select
Application.ScreenUpdating = True
End Sub
Anzeige

365 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige