Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Multiplikation
#31
Hallo George,

ich sah gerade noch, dass das hier
For i = Asc("Y") To Asc("ZZ")
gar nicht geht, da der ASCII-Code nichts mit der Spaltennummer zu tun hat.
Hier mal der komplett umgestellte Code, wie er funktionieren sollte (ich hab ihn nicht getestet):
Option Explicit

Public Sub Requiredgenerate1(seatNo As Integer)  'Public(öffentlich) Variablen können von Methoden anderer Module genutzt werden
 Dim startSheet As Worksheet                 'startSheet als Arbeitsblatt
 Dim requiredSheet As Worksheet
 Dim requiredSheetName1 As String
 Dim requiredRow As Long                     'Row = Reihe
 Dim reference1Cell As Range                 'Cell = Zelle
 Dim reference1Column As Long                'Column = Spalte
 Dim current1Row As Long
 Dim current1Cell As Range
 Dim i As Integer
 Const Search_Start_Row As Integer = 2      'Start der Bauteilsuche ab Zeile 11 in MAL
 Const RESULT_START_ROW As Integer = 2      'Übertragung der Bauteile ab Zeile 11 in Montageliste
 
 Set startSheet = Worksheets(1)              'Zuweisung der Objektvariablen
 Set reference1Cell = startSheet.Range("Y2:BH2").Find(seatNo, LookIn:=xlValues)      'referenzCell = Ausdruck wird in den Formel-Ergebnissen der Zellen vom Bereich AC2 bis BM 2 gesucht
 reference1Column = reference1Cell.Column                                             'referenzColumn = Referenz-Zelle in der Spalte
 requiredSheetName1 = "Bedarfsplanung"                                                 'Arbeitsblatt generateSheetName1 heißt Bedarfsplanung
 Worksheets("Bedarfsplanung").Activate                                                 'Aktivierung der Tabelle 3
 On Error Resume Next
 Set requiredSheet = Sheets(requiredSheetName1)
 On Error GoTo 0
 For i = Range("Y:Y").Column To Range("ZZ:ZZ").Column   'requiredSheet.Range über Schleife mit Variablen hochzählen ; i as Integer ; i++
   requiredRow = RESULT_START_ROW
   For current1Row = Search_Start_Row To startSheet.UsedRange.Rows.Count    'Filterung und nur Übertragung von Bauteilen mit einer Anzahl ab 1
     Set current1Cell = startSheet.Cells(current1Row, reference1Column)
     requiredSheet.Cells(requiredRow, i).Value = current1Cell.Value                      'Bauteilanzahl
     requiredRow = requiredRow + 1
   Next current1Row
 Next i
End Sub
Gruß Uwe
Antworten Top
#32
Hallo Uwe,

wegen dem i=Asc(Y)... habe ich Range(Chr(i)... genommen. Dadurch wird aus der Zahl wieder das Y Smile
Warum da nix mehr übertragen wird, kann ich allerdings nicht nachvollziehen Sad
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#33
Hallo André,

(09.06.2016, 17:35)schauan schrieb: Hallo Uwe,

wegen dem i=Asc(Y)...  habe ich Range(Chr(i)... genommen. Dadurch wird aus der Zahl wieder das Y  Smile
Warum da nix mehr übertragen wird, kann ich allerdings nicht nachvollziehen Sad

vermutlich, weil Du requiredSheet vergessen hast!!!  :19:  :05:

Aber krass ist diese Variante ja schon. :)

Gruß Uwe
Antworten Top
#34
Hallo Uwe,

Zitat:Aber krass ist diese Variante ja schon
was einem eben Nachts so durch den Kopf geht ... Allerdings hatte ich da trotzdem schon anderthalb Augen zu. So, wie es der Fragesteller programmiert hat und ich in meinem jugendlichen Leichtsinn fortgeführt habe, wird es nichts hochprozentiges. Asc liefert nur den Wert des ersten Zeichens, "zz" bringt in der Umkehr entsprechend nur "z". Das klappt also nur mit "einstelligen" Spalten oder man muss mehr programmieren.

Aber vergessen hab ich eigentlich nichts. Das da noch was hingehört, deswegen stehen ja die vielen Punkte davor und dahinter.
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#35
Hallöchen George,

hier mal noch eine bessere Variante für die Spaltenzuordnung in einer Schleife. Im Prinzip geht das so:

Code:
For i = Columns("Y").Column To Columns("ZZ").Column
  Cells(1, i).Value = i
Next

Hat Uwe ähnlich in seinem Beispiel verwendet, dort nur mit Range("Y:Y").Column. Alternative Schreibweisen wären z.B. noch Range("Y1").Column oder Cells(1, "Y").Column

Oder For i = 25 to 702 - da muss Excel nicht erst irgendwas umrechnen ...
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#36
Guten Abend,

habe jetzt die Anpassung von Uwe in meiner Schleife vorgenommen und nun wurden nach betätigung meines Übertragungsbuttons die Daten der einen Variante in Spalten bis ZZ gefüllt. :05:  :22:

Anscheinend benötigt die Schleife noch eine Unterbrechungsvorgabe oder so ?!
Antworten Top
#37
Hallo George,

eventuell hast Du einen Schreibfehler drin? Kannst Du die Zeile mal kopieren und posten?
.      \\\|///      Hoffe, geholfen zu haben.
       ( ô ô )      Grüße, André aus G in T  
  ooO-(_)-Ooo    (Excel 97-2019+365)
Antworten Top
#38
Ja davor hatte ich einen Fehler gemacht.Hab die vorherige Aussage korigiert!
Sorry
Antworten Top
#39
Hallo André,

(09.06.2016, 19:17)schauan schrieb: Asc liefert nur den Wert des ersten Zeichens, "zz" bringt in der Umkehr entsprechend nur "z". Das klappt also nur mit "einstelligen" Spalten oder man muss mehr programmieren.

jetzt, da Du es sagst. Soweit hatte ich das gedanklich gar nicht mehr vertieft. :)

Gruß Uwe
Antworten Top
#40
Abend,

muss ich eventuell eine schritweises hochzählen der Variablen i extra definieren oder warum durchläuft er bei einem Befehl den ganzen angegeben Bereich von y bis ZZ?

beste Grüße
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste