Neuigkeiten:

Wenn ihr euch für eine gute Antwort bedanken möchtet, im entsprechenden Posting einfach den Knopf "sag Danke" drücken!

Mobiles Hauptmenü

Mit loop und funktion spalten mit offset in neue tabelle schreiben?

Begonnen von silentwolf, Oktober 30, 2016, 16:51:48

⏪ vorheriges - nächstes ⏩

silentwolf

Hallo liebe Leute,
stehe vor einen Problem das ich einfach nicht lösen kann.

Sub MandatsNrInNeueSpalte()
    Dim wksLookUP As Worksheet
    Dim Zeile As Integer
    Dim ZeileMax As Long
   
    Set wksLookUP = tabLookUp
   
Application.ScreenUpdating = False

    With ActiveSheet
    ZeileMax = .Cells(Rows.Count, 1).End(xlUp).Row

        For Zeile = 2 To ZeileMax
   
'Zelle in eine neue Spalte eintragen der gleichen worksheets
            .Cells(Zeile, 8).Value = ExtraktMandatsnummer(.Cells(Zeile, 5).Value)
               
           
'            .Cells(Zeile, 7).Value = ExtraktMandatsnummer(.Cells(Zeile, 5).Offset(0, -2).Value)

'            .Cells(Zeile, 7).Value = ActiveCell.Offset(0, -2).Value
           
' write Mandatsnummern in sheet tabLookUp!
'            tabLookUp.Cells(Zeile, 2).Value = ExtraktMandatsnummer(.Cells(Zeile, 5).Value)
'
'            tabLookUp.Cells(Zeile, 1).Value = ExtraktMandatsnummer(.Cells(Zeile, 5).Offset(0, -2).Value)
           
'Here I like to offset wherever it findes a result offset it two columns to the left and insert it into tabLookUp in column A??

'            tabLookUp.Cells(Zeile, 1).Value = ExtraktMandatsnummer(.Cells(Zeile, 5).Offset(0, -2).Value)
           
           
'            tabLookUp.Cells(Zeile, 1).Value = ExtraktMandatsnummer(.Cells(Zeile, 5).Offset(0, -2).Value)
           
'            tabLookUp.Cells(Zeile, 1).Value = ExtraktMandatsnummer.Offset(0, 2).Value
           
'            tabLookUp.Cells(Zeile, 1).Value = activesheet(.cells(zeile,1).value
           
'            tabLookUp.Cells(Zeile, 1).Value = ActiveCell.Cells.Offset(0, -2).Value
           
           
        Next Zeile
    End With
Application.ScreenUpdating = True
End Sub


hier der Code mit verschiedenen Ansätzen.
Die Schleife läuft durch ein tabellenblatt und findet daten. Diese Daten werden dann mit der ExtraktMandatsnummer function aufbereitet. Das funktioniert auch soweit.
Nun möchte ich aber verschiedene Spalten von den gefundenen Spalten also mit offset in ein anderes oder in das selbe Tabellenblatt kopieren.

Momentan funktioniert leider nur das übergeben von der Funktion in eine neue Spalte aber leider noch nicht mit einen offset.

Komme leider nicht weiter und hab auch schon ewig gegoogelt aber nicht das richtige gefunden.

HOffe jemand könnte mir diesbezüglich helfen?

LG
Albert

ebs17

ZitatMomentan funktioniert leider nur das übergeben von der Funktion in eine neue Spalte aber leider noch nicht mit einen offset.
Dein Vorgehen ist etwas ineffizient, zellenweises Schreiben und Umschreiben ist wegen der vielen Objektzugriffe langwierig. Siehe da auch Performance (1) - Vorwort + Schleifen die keiner braucht

So richtig durchschaue ich Dein Vorhaben nicht, eine erklärende Mappe ist auch nicht vorhanden. Da skizziere ich einen Weg, wie man ihn etwa gehen könnte:
- ganze Spalte(n) - entsprechen einem Bereich - in ein Array überführen
- mittels Schleife im Array Werte überarbeiten (Einsatz der Funktion auf Einzelwerte)
- Arrayinhalt auf Zielbereich ablegen
Mit freundlichem Glück Auf!

Eberhard

silentwolf

Hallo Eberhard

zuerst mal vielen Dank für Deine Antwort!
Na ja das mit der Geschwindigkeit oder das ineffizente Prozedur liegt wahrscheinlich daran das es in dieser besagten Spalte einfach zu viele verschiedene Werte zu bearbeiten sind. Und auch natürlich mein noch nicht ganz fitter Umgang mit VBA ;-)
Aber ich lerne und versuche...
Ich kenne den Umgang mit Arrays auch ein wenig nur ist es schwierig da die Werte nicht immer in der gleichen Position vorkommen.
Danke für Deinen link ich werde es mal genau ansehen und mich danach nochmal melden.

mfg
Albert