Weshalb wird die nächste freie Spalte nicht benutz
 |
Betrifft: Weshalb wird die nächste freie Spalte nicht benutz
von: Maike Bromann
Geschrieben am: 18.09.2014 19:33:44
Liebe Forenmitglieder,
ermutigt von der mir geleisteten großartigen Hilfe möchte ich ein VBA Problem schildern, das ich mit meinen Makro Kenntnissen bisher nicht lösen konnte.
In einer Tabelle seien ab Zeile 6 die Spalten 1-7 mit Werten gefüllt, es können zukünftig aber noch mehr Spalten mit Werten dazukommen. Diese würde ich aber auf einem anderen Blatt speichern, sodass meine Prozedur möglichst flexibel bleiben sollte, also mit variablen Zellbezügen.
Anbei meine bisherige Prozedur:
Sub Auswertung_Zbereiche()
Dim ObjCells As Object
Dim i As Integer
Dim i2 As Integer
Dim k As Integer
i2 = ActiveSheet.UsedRange.Rows.Count
k = Cells(6, Columns.Count).End(xlToLeft).Column + 1
MsgBox "Erste freie Zelle in Zeile 6 ist in Spalte: " & k
For i = 1 To i2
Cells(i, 1).Select
Set ObjCells = ActiveCell
Select Case ObjCells.Value
Case 1 To 5
Cells(i, k) = 1
Case 6 To 9
Cells(i, k) = 2
Case 10 To 13
Cells(i, k) = 3
Case 14 To 16
Cells(i, k) = 4
Case 17 To 18
Cells(i, k) = 5
Case 19 To 20
Cells(i, k) = 6
Case 21 To 100
Cells(i, k) = 7
End Select
Wie kann man k dazu veranlassen die wirklich nächste freie Spalte, die die MessageBox auch ausgibt, für die Rangfolgeauswertung zu benutzen.
 |
Betrifft: AW: Weshalb wird die nächste freie Spalte nicht benutz
von: Rudi Maintaire
Geschrieben am: 18.09.2014 19:53:13
Hallo,
ich sehe keinen Grund dafür.
Das Select ist überflüssig.
Set ObjCells = Cells(i, 1)
Eigentlich kannst du direkt
Select Case Cells(i,1)
schreiben und auf die Objektvariable verzichten.
Gruß
Rudi
Betrifft: welche wird denn benutzt? owT
von: Rudi Maintaire
Geschrieben am: 18.09.2014 19:54:00
Betrifft: AW: welche wird denn benutzt? owT
von: Gerold
Geschrieben am: 18.09.2014 20:18:08
Hallo Maike
Tausche mal folgende Zeilen
i2 = ActiveSheet.UsedRange.Rows.Count
durch
i2 = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row 'Maximum Zeile ermitteln
ersetzen.
Gruß Gerold
Rückmeldung wäre nett.
Betrifft: AW: welche wird denn benutzt? owT
von: Maike Bromann
Geschrieben am: 18.09.2014 20:54:18
Hallo Gerold,
die nächste Zeile waren nicht das Problem, es klappte mit der nächst freien Spalte nicht.
https://www.herber.de/bbs/user/92717.xlsm
ist der Mappenaufbau, aber der Code funktioniert hier überhaupt nicht mehr. Rudi Maintere ist schon involviert, aber eventuell findest du ja eine andere Lösung.
Vielen Dank
Lg Maike
Betrifft: AW: Weshalb wird die nächste freie Spalte nicht benutz
von: Maike Bromann
Geschrieben am: 18.09.2014 20:17:17
Hallo Rudi,
die Spalten 1 bis 3 sind Kalenderdaten, die Werte gehen von Spalte 4 bis 11, und die Prozedur fängt in Spalte 8 an Werte zu überschreiben.
Betrifft: lad mal die Mappe hoch owT
von: Rudi Maintaire
Geschrieben am: 18.09.2014 20:25:31
Betrifft: AW: lad mal die Mappe hoch owT
von: Maike Bromann
Geschrieben am: 18.09.2014 20:45:45
https://www.herber.de/bbs/user/92717.xlsm
das ist die Mappe, allerdings werden in diesem Muster gar keine Werte mehr berechnet und ich habe nur den Code entsprechend zu deinem Hinweis (Selet) geändert.
Vielen Dank
LG Maike
Betrifft: AW: lad mal die Mappe hoch owT
von: Rudi Maintaire
Geschrieben am: 18.09.2014 20:55:41
Hallo,
Code ist korrekt.
Allerdings werden 101 und 102 im Select Case gar nicht berücksichtigt. Es wird also nichts in die Tabelle geschrieben.
Gruß
Rudi
Betrifft: AW: lad mal die Mappe hoch owT
von: Maike Bromann
Geschrieben am: 18.09.2014 21:09:16
Ich habe i gleich 4 gesetzt, aber da lief auch nichts!
LG Maike
Betrifft: AW: lad mal die Mappe hoch owT
von: Rudi Maintaire
Geschrieben am: 18.09.2014 21:29:50
Hallo,
Ich habe i gleich 4 gesetzt
washat das denn damit zu tun?
Schreib mal in A anstatt 101, 102 irgendwas zwischen 1 und 100.
Gruß
Rudi
Betrifft: AW: lad mal die Mappe hoch owT
von: Maike Bromann
Geschrieben am: 18.09.2014 21:58:48
Hallo Rudi,
du hast recht, die Prozedur läuft reibungsfrei ab.
Aber wie kriege ich es hin, das die Ausgangsergebnisse auch erst in Spalte 4 stehen können?
Betrifft: cells(1, 4) ??? owT
von: Rudi Maintaire
Geschrieben am: 18.09.2014 22:09:44
Betrifft: AW: cells(1, 4) ??? owT
von: Maike Bromann
Geschrieben am: 18.09.2014 22:20:18
Hallo Rudi,
cells(1, 4) oder cells(i, 4) bei beiden Ersetzungen werden die Werte nicht berechnet.
In meiner Tabelle stehen jetzt in Spalte D ab Zeile 6 nur noch 7 Zahlen zwischen 1 und 100.
Vielen Dank widerum
LG Maike
Betrifft: Bahnhof owT
von: Rudi Maintaire
Geschrieben am: 18.09.2014 22:49:10
Betrifft: AW: cells(1, 4) ??? owT
von: Maike Bromann
Geschrieben am: 18.09.2014 23:15:24
Hallo Rudi,
wenn Spalten vor der Wertezeile in zb, D keine Inhalte haben geht cells(i, 4) nicht, sobald aber in Spalte A oder B oder C etwas steht, wertet die Prozedur Spalte D aus. Ist doch ulkig, oder.
Besten Dank für deine Geduld
Bis morgen vielleicht
LG Maike
Betrifft: AW: lad mal die Mappe hoch owT
von: Maike Bromann
Geschrieben am: 18.09.2014 22:00:26
Ich meine natürlich die Ausgangswerte und nicht Ausgangsergebnisse.
Vielen Dank
LG Maike
Betrifft: AW: lad mal die Mappe hoch owT
von: Maike Bromann
Geschrieben am: 18.09.2014 21:01:57
Hallo Rudi,
die Werte sollen ja auch nur aus den Spalten D bis I gebildet werden, war wahrscheinlich im Original von
A bis G, aber ich bin mir unklar darüber, wie der neue Startwert für die Spalte vergeben wird.
Vielen Dank und
LG Maike
Beiträge aus den Excel-Beispielen zum Thema "Weshalb wird die nächste freie Spalte nicht benutz"