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

zellinhalte übertrage

zellinhalte übertrage
Bowl
Hallo zusammen,
kaum ne neue Aufgabe schon wieder riesen Probleme xD
Es geht um Folgendes:
Wie schon mal beschrieben, habe ich eine Vorlage die ausgefüllt wird und anschließend ein neues Tabellenblatt mit dem namen 123 erstellt. Zeitgleich mit dem erstellen wird dieser Wert in ein Tabellenblatt "Abteilung 1" geschrieben:
Sheets(Blattname).Cells(13, 17) > 0 Then
Worksheets("A_Saegen").Unprotect
x = (WorksheetFunction.CountA(Sheets("A_Saegen").Range("B:B")) - 3)
i = 10 + x
Worksheets("A_Saegen").Cells(i, 2) = Sheets(Blattname).Range("B3")
Worksheets("A_Saegen").Cells(i, 3) = Sheets(Blattname).Range("B4")
Worksheets("A_Saegen").Protect
Sheets(Blattname).Select
Ein weiterer Teil der Vorlage ist eine "Tabelle" die in der Zeile 9 als Überschriften die Kalenderwochen hat (hier allerdings abhängig vom wirklichen Datum also =KALENDERWOCHE(HEUTE()). In der Spalte A stehen die Abteilungsnamen: Abteilung A, Abteilung B,...
in diesen bereich werden jetzt "geplante Arbeitszeiten" eingtragen also in die Telle
Abteilung A:Kalenderwoche(heute()) 5
usw usw.
das ganze wird selbstverständlich mit in das neu zu erstellende Blatt 123 kopiert, wobei hier die Kalenderwochen als werte nicht mehr als Formeln angegeben werden.
In meinem Tabellenblatt "Abteilung A" steht jetzt also schon in B10 die Kundennummer 123. Als Spaltenüberschriften sind hier ebenfalls Kalenderwochen (als Werte).
Jetzt muss ich also den Wert 5, im Blatt Abeilung A der Spalte zuordnen in der eben 27 steht.
Theoretisch ging sowas ja über einen Verweis:
=VERWEIS(D9;'123'!G9:G13)
D9 ist das Feld in der quasi die "Überschrift" 27(.Kalenderwoche) steht
'123' der tabellenname und G9:G13 der Bereich wo nach den Werten gesucht werden soll.
Das Problem jetzt ist: Die 123 kann ich ja vorher nicht als wert festlegen, sonder muss im blatt Abteilung A auf den wert in der Spalte B in der entsprechenden Zeile zugreifen.. also z.b. B10...alledings klappt das ganze dann nicht mehr...
Gibt es möglichkeiten entweder die werte schon beim kopieren in das Tabellenblatt Abteilung A zu schreiben oder eine andere möglichkeit mit verweisen?
vielen Dank im vorraus

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: zellinhalte übertrage
02.07.2009 14:57:34
Bowl
Kuzgefasst:
Ich brauch ne Möglichkeit, Werte aus der Zeile ("Abteilung A") einer Tabelle ('123') einer anderen Tabelle ("Abteilung A") der Zeile '123' zuzuweisen und dabei auf die richtige Kalenderwoche also richtige Spalte zu achten.
AW: zellinhalte übertrage
03.07.2009 02:29:39
fcs
Hallo Bowl,
du hast verschiedene Möglichkeien, die Spalte und Zeile zu ermitteln, in der in der Zieltabelle der Wert eingefüllt werden soll.
1. per Formel:

Tabellenblattname: Tabelle1
A         B    C     D         E
6          KW:    27
7
8       Kunde:   113
9    Abteilung             Zeile:   Spalte:
10  Abteilung A                 15        10
Benutzte Formeln:
B6:  =KALENDERWOCHE(HEUTE())
D10:  =9+VERGLEICH(B8;INDIREKT("'" & A10 &"'!A10:A1000");0)
E10:  =2+VERGLEICH(B6;INDIREKT("'" & A10 &"'!C10:Z10");0)



Tabellenblattname: Abteilung A
A     B    C    D    E    F    G    H    I    J    K    L
10          KW   20   21   22   23   24   25   26   27   28   29
11  Kunde
12    102
13    111
14    112
15    113
16    432
17    203                                                          


Diese Berechneten Spalten kannst du dann im Code verwenden, um die Werte im Blatt "Abteilung A einzutragen.
Du kannst aber die Zeilen und Spalten auch vom Makro suchen lassen. Entweder mit der Find-Methode oder auch in For-Next-Schleifen mit Werte-Vergleich.
So eine Kreuztabellensuchprozedur kann wie folgt aussehen.
Gruß
Franz


Sub Wert_uebertragen()
Dim wksZiel As Worksheet, wksEingabe As Worksheet
Dim varKunde As Variant, lngKW As Long, strAbteilung As String
Dim Zelle As Range, lngZeile As Long, lngSpalte As Long, Zeile As Long
Set wksEingabe = Worksheets("Tabelle1")
With wksEingabe
varKunde = .Range("B8").Value
lngKW = .Range("B6").Value
'Abteilungen ab Zeile 10 abwärts bis Listenende bearbeiten
For Zeile = 10 To .Cells(.Rows.Count, 1).End(xlUp).Row
strAbteilung = .Cells(Zeile, 1).Value
Set wksZiel = Worksheets(strAbteilung)
With wksZiel
'Suche Zelle mit KW inZeile 10 Bereich C10:CZ10
Set Zelle = .Range("C10:CZ10").Find(What:=lngKW, LookIn:=xlValues, _
lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox "KW in Zeile 10 nicht gefunden"
Else
lngSpalte = Zelle.Column
'Suche Kunde in Spale A
Set Zelle = .Range("A10:A1000").Find(What:=varKunde, LookIn:=xlValues, _
lookat:=xlWhole)
If Zelle Is Nothing Then
MsgBox "Kunde in Spalte A nicht gefunden"
Else
lngZeile = Zelle.Row
'Wert(e) aus Eingabeblatt in Abteilungsblatt übertragen
.Cells(lngZeile, lngSpalte).Value = wksEingabe.Cells(Zeile, 2).Value
End If
End If
End With
Next
End With
End Sub


Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige