Supportnet / Forum / Skripte(PHP,ASP,Perl...)
Kommentare in einem anderen Excel File anzeigen
Frage
Guten Tag miteinander
Ich habe folgendes Problem:
Ich habe im Excel (laienhaft) eine Tabelle erstellt, in der die Mitarbeiter eintragen könnnen,
wie viel Zeit sie für welche Tätigkeit gebraucht haben. Um nun als Chef eine speditivere
Arbeitsverteilung garantieren zu können, müssen die Mitarbeiter hinter möglichst vielen Feldern
Kommentare hinterlegen, die Verbesserungsmöglichkeiten aufzeigen. Da es nun aber zum Auswerten
ziemlich mühsam ist, jeden Kommentar einzeln anzuschauen, habe ich im Internet nach einer Möglichkeit
gesucht, alle Kommentare in EINEM neuen Files übersichtlich untereinander anzuzeigen. Ich habe schliesslich dieses Makro gefunden das grundsätzlich auch funktioniert:
Sub showcomments()
'posted by Dave Peterson 2003-05-16
Application.ScreenUpdating = False
Dim commrange As Range
Dim mycell As Range
Dim curwks As Worksheet
Dim newwks As Worksheet
Dim i As Long
Set curwks = ActiveSheet
On Error Resume Next
Set commrange = curwks.Cells _
.SpecialCells(xlCellTypeComments)
On Error GoTo 0
If commrange Is Nothing Then
MsgBox "no comments found"
Exit Sub
End If
Set newwks = Worksheets.Add
newwks.Range("A1:D1").Value = _
Array("Address", "Name", "Value", "Comment")
i = 1
For Each mycell In commrange
With newwks
i = i + 1
On Error Resume Next
.Cells(i, 1).Value = mycell.Address
.Cells(i, 2).Value = mycell.Name.Name
.Cells(i, 3).Value = mycell.Value
.Cells(i, 4).Value = mycell.Comment.Text
End With
Next mycell
Application.ScreenUpdating = True
End Sub
Das Problem ist nun, dass es zwar die Kommentare, welcche in den Zellen wo die Zeit steht eingetragen sind in ein neues Files zieht, jedoch ohne die Tätigkeiten und Gruppen. So sieht man zwar den Kommentar, aber nicht zu welcher Tätigkeit er gehört.
Hier meine Tabelle:
Tätigkeit Gruppe Montag / 07.01.2008
Ls erstellen Versand 0:00:02 0:00:06 0:00:07
Fracht Export 0:00:11 0:00:11 0:00:11
Ls erstellen Versand 0:00:16 0:00:17 0:00:17
Fracht Export 0:00:19
Briefe Post 0:00:20 0:00:20 0:00:20
Telefon Zentrale 0:00:22 0:00:22 0:00:22
Rechnungen Buchhaltung 0:00:30
Ich hoffe es ist verständlich was ich meine.. und sorry für den langen Eintrag.
Wäre sehr froh um Hilfe.
PS: ich arbeite mit Excel 2003
Herzlichen Dank und freundliche Grüsse
Antwort 1 von Flupo
Wieviele Zeilen hat die auszuwertende Tabelle?
Zur Lösung des Problems muss der Bereich
For Each mycell In commrange
With newwks
i = i + 1
On Error Resume Next
.Cells(i, 1).Value = mycell.Address
.Cells(i, 2).Value = mycell.Name.Name
.Cells(i, 3).Value = mycell.Value
.Cells(i, 4).Value = mycell.Comment.Text
End With
Next mycell
ergänzt und oder ausgemistet werden.
Wenn ich das Makro richtig verstehe, wird eine neue Tabelle mit der Struktur
Zelladresse - Name - Zellwert (also die Zeit) - Kommentar
erzeugt.
Und wenn ich dich richtig verstehe, möchtest du in Spalte A anstelle der Adresse den Inhalt aus Spalte A der kommentierten Tabelle.
Liege ich richtig?
Gruß Flupo
Zur Lösung des Problems muss der Bereich
For Each mycell In commrange
With newwks
i = i + 1
On Error Resume Next
.Cells(i, 1).Value = mycell.Address
.Cells(i, 2).Value = mycell.Name.Name
.Cells(i, 3).Value = mycell.Value
.Cells(i, 4).Value = mycell.Comment.Text
End With
Next mycell
ergänzt und oder ausgemistet werden.
Wenn ich das Makro richtig verstehe, wird eine neue Tabelle mit der Struktur
Zelladresse - Name - Zellwert (also die Zeit) - Kommentar
erzeugt.
Und wenn ich dich richtig verstehe, möchtest du in Spalte A anstelle der Adresse den Inhalt aus Spalte A der kommentierten Tabelle.
Liege ich richtig?
Gruß Flupo
Antwort 2 von Flupo
Falls ich richtig liege könnte es so gehen:
oben bei den anderen DIM's muss zusätzlich die Zeile
eingefügt werden
Gruß Flupo
oben bei den anderen DIM's muss zusätzlich die Zeile
Dim newcell As String
eingefügt werden
For Each mycell In commrange
With newwks
i = i + 1
On Error Resume Next
newcell = "$A" + Right(Str(mycell.Row), Len(Str(mycell.Row)) - 1)
.Cells(i, 1).Value = Range(newcell).Value
.Cells(i, 2).Value = mycell.Name.Name
.Cells(i, 3).Value = mycell.Value
.Cells(i, 4).Value = mycell.Comment.Text
End With
Next mycell
Gruß Flupo
Antwort 3 von Mequire
Hey guten morgen Flupo
Es hat super funktioniert so wie ich des wollte...
Ich danke dir herzlichst!!
Gruss Mequ
Es hat super funktioniert so wie ich des wollte...
Ich danke dir herzlichst!!
Gruss Mequ

