Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
432to436
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
432to436
432to436
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

2-dimensionales Array transponieren

2-dimensionales Array transponieren
24.05.2004 15:11:08
Boris
Hi Leute,
ich habe eine Array-Variable innerhalb einer For-Next-Schleife (mit abfragender Bedingung) mit Daten gefüttert.
Am Ende bleibt dann z.B.:
myArray(5, 1 to 3)
Diese Daten möchte ich jetzt transponiert in einem Tabellenblatt ablegen.
Wenn ich aber schreibe:
Range("A1:C5") = myArray()
dann werden die Datein spaltenweise eingetragen. Ich möchte sie aber zeilenweise eintragen - also in den Bereich A1:E3 - und zwar ohne eine Schleife, die das gesamte Array durchläuft.
Gibt es sowas wie die Column-Eigenschaft bei Listboxen auch für die Tabelle?
Wie geht das?
Grüße {Boris}
AW: 2-dimensionales Array transponieren
NE
Hallo Boris,
woher kommt myarr, bzw. wie füllst Du es?
lg Nancy
--
Option Explicit
Option Base 1

Sub x()
Dim i%, j%
Dim myarr(5, 1 To 3)
For i = 1 To 3
For j = 1 To 5
myarr(j, i) = i & j
Next
Next
Range("A1:C5") = myarr
End Sub


Sub y()
Dim i%, j%
Dim myarr(5, 1 To 3)
For i = 1 To 5
For j = 1 To 3
myarr(i, j) = i & j
Next
Next
Range("E1:G5") = myarr
End Sub

AW: 2-dimensionales Array transponieren
NE
Hi nochmal,
Nachtrag:
sowas 'verrücktes' geht auch, aber seltsamerweise NUR im Einzelschritt,
sonst kommt Verweis ungültig ?

Sub z()
Dim i%, j%
Dim myarr(5, 1 To 3)
For i = 1 To 3
For j = 1 To 5
myarr(j, i) = i & j
Next
Next
Range("A1:E3") = Application.WorksheetFunction.Transpose(myarr)
End Sub

cu Nancy
Anzeige
Super - das funktioniert...
Boris
Hi Nancy,
...und nicht nur im Einzelschritt;-))
Der Vollständigkeit halber hier noch der gesamte Code, der im übrigen dazu da ist, aus einer ziemlich großen - mit Autofilter gefilterten - Liste, alle Filterkriterien in einem separaten Blatt anzuzeigen. Vielleicht kann sogar der ein oder andere was damit anfangen;-) :
Option Explicit
Option Base 1

Sub aktive_Filter()
Dim i       As Integer
Dim iCount  As Integer
Dim Ash     As Worksheet
Dim iCol As Integer
Dim myArray() As Variant
Set Ash = ActiveSheet
With Ash
'Wenn irgendein Filter aktiv ist, dann
If .FilterMode Then
iCol = .AutoFilter.Range.Column - 1
'Schleife über alle Filter
For i = 1 To .AutoFilter.Filters.Count
'Wenn Filter i aktiv ist, dann
If .AutoFilter.Filters(i).On Then
iCount = iCount + 1
ReDim Preserve myArray(5, 1 To iCount)
myArray(1, iCount) = Application.Substitute(Cells(1, i + iCol).Address(0, 0), 1, "")
myArray(2, iCount) = Trim(Application.Substitute(Application.Substitute(.Cells(1, i + iCol), _
Chr(10), " "), "-", ""))
myArray(3, iCount) = "'" & .AutoFilter.Filters(i).Criteria1
On Error Resume Next
myArray(4, iCount) = IIf(.AutoFilter.Filters(i).Operator = xlAnd, "und", "oder")
myArray(5, iCount) = "'" & .AutoFilter.Filters(i).Criteria2
On Error GoTo 0
End If
Next i
End If
End With
With Worksheets("Daten")
.Cells.ClearContents
.[a1] = "Spalte": .[b1] = "Überschrift": .[c1] = "Kriterium 1": .[d1] = "Operator": .[e1] = "Kriterium 2"
.[a1:e1].Font.Bold = True
.Range("A2:E" & iCount + 1) = WorksheetFunction.Transpose(myArray)
.Columns("A:E").AutoFit
End With
End Sub

Danke nochmals und Grüße
Boris
Anzeige
AW: 2-dimensionales Array transponieren
Reinhard
Hi Nancy,
bei mir in XL2000 gehts ohne Probleme mit F5...
Gruß
Reinhard
AW: 2-dimensionales Array transponieren
NE
Hallo zusammen,
jeps, mit F5 gehts auch :-)
Aber bei allen 3 Varianten:
application.worksheetfunction.transpose(myarr)
worksheetfunction.transpose(myarr)
application.transpose(myarr)
bekomm ich aus xl heraus mit Alt + F8 die Meldung 'Verweis ungültig'
However, wer weiss was ich wiedermal verquer mach' ;;-))
lg Nancy
AW: 2-dimensionales Array transponieren
K.Rola
Hallo Meister der {},
reicht dir das Beispiel?
Option Explicit
Option Base 1

Sub Arraytest()
Dim arr(5, 3), z As Long, s As Integer
For z = 1 To 5
For s = 1 To 3
arr(z, s) = Rnd
Next
Next
Range("A1:E3") = Application.Transpose(arr)
End Sub

Gruß K.Rola
Anzeige
Klar reicht das...
Boris
Hi K.Rola,
...besten Dank. Siehe auch meine Antwort an Nancy.
Ist der Code o.k.?
Grüße Boris
AW: Klar reicht das...
K.Rola
Hallo Boris,
hab jetzt gerade keine Zeit zum Testen. Auf den ersten Blick würde ich sagen, dass
im unteren Teil ein Fehler auftritt, falls dein Array keine Daten enthält.
Werde es mal kopieren und abends nach 20:00 testen.
Gruß K.Rola
Du hast natürlich Recht...
Boris
Hi K.Rola,
...der muss noch um"If"ed werden - z.B. durch Abfrage von "iCount":
With Worksheets("Daten")
.Cells.ClearContents
.[a1] = "Spalte": .[b1] = "Überschrift": .[c1] = "Kriterium 1": .[d1] = "Operator": .[e1] = "Kriterium 2"
.[a1:e1].Font.Bold = True
If iCount Then .Range("A2:E" & iCount + 1) = WorksheetFunction.Transpose(myArray)
.Columns("A:E").AutoFit
End With
Also in Gänze:
Option Explicit
Option Base 1

Sub aktive_Filter()
Dim i       As Integer
Dim iCount  As Integer
Dim Ash     As Worksheet
Dim iCol As Integer
Dim myArray() As Variant
Set Ash = ActiveSheet
With Ash
'Wenn irgendein Filter aktiv ist, dann
If .FilterMode Then
iCol = .AutoFilter.Range.Column - 1
'Schleife über alle Filter
For i = 1 To .AutoFilter.Filters.Count
'Wenn Filter i aktiv ist, dann
If .AutoFilter.Filters(i).On Then
iCount = iCount + 1
ReDim Preserve myArray(5, 1 To iCount)
myArray(1, iCount) = Application.Substitute(Cells(1, i + iCol).Address(0, 0), 1, "")
myArray(2, iCount) = Trim(Application.Substitute(Application.Substitute(.Cells(1, i + iCol), _
Chr(10), " "), "-", ""))
myArray(3, iCount) = "'" & .AutoFilter.Filters(i).Criteria1
On Error Resume Next
myArray(4, iCount) = IIf(.AutoFilter.Filters(i).Operator = xlAnd, "und", "oder")
myArray(5, iCount) = "'" & .AutoFilter.Filters(i).Criteria2
On Error GoTo 0
End If
Next i
End If
End With
With Worksheets("Daten")
.Cells.ClearContents
.[a1] = "Spalte": .[b1] = "Überschrift": .[c1] = "Kriterium 1": .[d1] = "Operator": .[e1] = "Kriterium 2"
.[a1:e1].Font.Bold = True
If iCount Then .Range("A2:E" & iCount + 1) = WorksheetFunction.Transpose(myArray)
.Columns("A:E").AutoFit
End With
End Sub

Interessieren würd mich im übrigen auch, ob man das "On Error Resume Next" auf einfache Art und Weise wegbekommt.
Grüße Boris
Anzeige
Operator-Test gegen on error resume next
24.05.2004 20:03:21
Well
Zum Testen als idee
Wenn der Operator 0 ist kann es kein Criteria 2 geben oder ?
Nur als Vorschlag also
if .operator 0 then
prüfen xland
criteria2 ausgeben
end if
Fare Well
nur was für die Opik
Reinhard
Hallo Boris,
wie wärs denn mit
.[A1:E1] = Split("Spalte Überschrift Kriterium1 Operator Kriterium2")
bzw.
.[A1:E1] = Split("Spalte,Überschrift,Kriterium 1,Operator,Kriterium 2", ",")
Gruß
Reinhard
Aber nicht unter xl97...
Boris
Hi Reinhard,
...da gab´s Split noch nicht.
Grüße Boris
aha, danke für die Info:-) o.w.T.
Reinhard
.
Ich habe nochmals etwas "rumgespielt"...
Boris
Hi K.Rola,
...um den Code (so gut wie möglich) allgemeingültig zu gestalten.
Zudem hab ich noch 2 kleine Functions eingebaut.
Speziell zur F unction "Bedingung" ist mir nix Besseres eingefallen...
Wäre toll, wenn du dein fachfräuliches Auge da auch mal rübergleiten lassen kannst.
Option Explicit
Option Base 1

Sub aktive_Filter()
Dim i           As Integer
Dim iCount      As Integer
Dim Ash         As Worksheet
Dim iCol        As Integer
Dim myArray()   As Variant
Dim strTemp     As String
Dim lRow        As Long
Set Ash = ActiveSheet
With Ash
'Wenn irgendein Filter aktiv ist, dann
If .FilterMode Then
'In welcher Spalte beginnt der Autofilter (minus 1)
iCol = .AutoFilter.Range.Column - 1
'In welcher Zeile beginnt der Autofilter
'Dabei wird unterstellt, dass in dieser Zeile die Überschriften stehen
lRow = .AutoFilter.Range.Row
'Schleife über alle Filter
For i = 1 To .AutoFilter.Filters.Count
'Wenn Filter i aktiv ist, dann
If .AutoFilter.Filters(i).On Then
'Zähler um 1 erhöhen
iCount = iCount + 1
ReDim Preserve myArray(7, 1 To iCount)
'Spaltenbuchstaben ermitteln
myArray(1, iCount) = Application.Substitute(Cells(1, i + iCol).Address(0, 0), 1, "")
'Überschrift ermitteln und gleichzeitig bereinigen um
'Zeilenumbrüche und Trenn-/Bindestriche
myArray(2, iCount) = Trim(Application.Substitute(Application.Substitute(.Cells(lRow, i + iCol), _
Chr(10), " "), "-", ""))
'Bedingung 1 ermitteln und in Text umwandeln
strTemp = .AutoFilter.Filters(i).Criteria1
myArray(3, iCount) = Bedingung(strTemp)
'Eigentliches Kriterium um <, >, = und * bereinigen
myArray(4, iCount) = Bereinigen(strTemp)
strTemp = ""
On Error Resume Next
'Operator ermitteln
myArray(5, iCount) = IIf(.AutoFilter.Filters(i).Operator = xlAnd, "und", "oder")
'Bedingung 2 ermitteln und in Text umwandeln
strTemp = .AutoFilter.Filters(i).Criteria2
myArray(6, iCount) = Bedingung(strTemp)
'Eigentliches Kriterium um <, >, = und * bereinigen
myArray(7, iCount) = Bereinigen(strTemp)
strTemp = ""
'Überflüssigen Operator entfernen
'sofern keine und/oder-Bedingung existiert
If myArray(6, iCount) = "" Then myArray(5, iCount) = ""
On Error GoTo 0
End If
Next i
Else
MsgBox "Der Autofiltermodus ist im aktiven Blatt nicht aktiv...", , "Kleiner Hinweis..."
Exit Sub
End If
End With
'Ausgabetabelle vorbereiten, formatieren und Daten aus myArray hineinschreiben
With Worksheets("Daten")
.Cells.ClearContents
.[a1] = "Spalte": .[b1] = "Überschrift": .[c1] = "Bedingung 1": .[d1] = "Kriterium 1"
.[e1] = "Operator": .[f1] = "Bedingung 2": .[g1] = "Kriterium 2"
.[a1:g1].Font.Bold = True
If iCount Then .Range("A2:G" & iCount + 1) = WorksheetFunction.Transpose(myArray)
.Columns("A:G").AutoFit
End With
End Sub


Function Bedingung(str As String) As String
If InStr(1, str, "=") And InStr(1, str, "*") And InStr(3, str, "*") Then Bedingung = "enthält": Exit Function
If InStr(1, str, "=") And InStr(3, str, "*") Then Bedingung = "beginnt mit": Exit Function
If InStr(1, str, "<>") And InStr(1, str, "*") And InStr(4, str, "*") Then Bedingung = "enthält nicht": Exit Function
If InStr(1, str, "=") And InStr(3, str, "*") Then Bedingung = "beginnt nicht mit": Exit Function
If InStr(1, str, "=") And InStr(1, str, "*") And InStr(3, str, "*") Then Bedingung = "enthält": Exit Function
If InStr(1, str, "=") And InStr(1, str, "*") Then Bedingung = "endet mit": Exit Function
If InStr(1, str, "<>") And InStr(1, str, "*") Then Bedingung = "endet nicht mit": Exit Function
If InStr(1, str, "<=") Then Bedingung = "kleiner oder gleich": Exit Function
If InStr(1, str, ">=") Then Bedingung = "größer oder gleich": Exit Function
If InStr(1, str, "<>") Then Bedingung = "entspricht nicht": Exit Function
If InStr(1, str, "<") Then Bedingung = "kleiner als": Exit Function
If InStr(1, str, ">") Then Bedingung = "größer als": Exit Function
If InStr(1, str, "=") Then Bedingung = "entspricht": Exit Function
str = ""
End Function


Function Bereinigen(str As String) As String
With WorksheetFunction
Bereinigen = .Substitute(.Substitute(.Substitute(.Substitute(str, ">", ""), "<", ""), "=", ""), "*", "")
End With
End Function

Grüße Boris
Anzeige
AW: Ich habe nochmals etwas "rumgespielt"...
K.Rola
Hallo Boris,
sei nicht sauer, aber ich hab z.Z. nicht den Nerv, weil ich selber ein Projekt
fertigstellen muss.
Es funktioniert soweit, nur die Funktion für die Kriterien haut wohl nicht ganz hin.
Du siehsr mal wieder, dass jedes Furzelchen Komfort teuer erkauft werden muss.
Gruß K.Rola
Kein Problem...
Boris
Hi K.Rola,
Well Ness gibt mir ja schon Nachhilfe.
Grüße Boris
Irgendwie
24.05.2004 20:48:35
Well
ist das wie 13 * 17 = 15 * 15 - (17-13)^2
Warum nicht vorher die aktiven Filter einmal zählen, dann das Feld richtig aufbauen und dann auch richtig schreiben ?
Anstatt dem redim preserve und dem transpose ?
for i = 1 to .count
z = z + 1 wenn filter
next i
redim feld(z,5)
Fare Well
Anzeige
Ich schreib ja dafür auch keine Bücher...
Boris
Hi Unbekannter,
...und gebe unter VBA-Level auch "Nein" an.
Ist das "ReDimen" denn sehr ressourcenfressend?
Grüße Boris
;-) hat gefehlt ...;-) oT
Boris
AW: Ich schreib ja dafür auch keine Bücher...
NE
Abend Boris,
hm, irgendwo hat wellwell ;-) [verzeih' meine saloppheit]
scho bissel recht, wenn Du es selber beeinflussen kannst wie sich myArray gestaltet
und dieses nicht durch eine Systemvariable vorgeschrieben ist,
könnte man das ja gleich mit einer richtigen Dimensionierung eingangs klären.
Redim (preserve) vs. Ressourcen keine Ahnung ;;-))
cu Nancy

Ich kann nichts für
24.05.2004 21:34:13
Well
meinen Namen. Habe darunter genug gelitten wie in einem anderem Forum schon geschrieben.
(Wobei Loch Ness noch harmlos war)
Aber mit meinen 54 wird man da gelassener und es macht Spass diese Excelforen entdeckt zu haben, ich kann viel lernen und ein wenig hoffentlich auch beitragen.
Ob das nun speicherfressen ist oder nicht ist doch egal, es ist einfach vom Gefühl her verdreht.
Wenn ich durch eine einfache und schnelle Operation ein verünftiges Feld erzeugen kann ohne danach mir mit irgendwelchem Zeug das Ding hinzubiegen, muss es besser sein.
Redim preserve ist imho nur für komplexe Datenoperationen sinnvoll, wenn der Aufwand der Feldgrößenermittlung nicht vertretbar ist.
Und in diesem Fall ist es wahrlich vertretbar und dazu kommt noch der Transposeact, der bestimmt Zeit kostet, jedenfalls mehr als die kleine Schleife.
Fare Well
Anzeige
wiewohl ...
NE
... gut gesagt irgendwie,
das hatte mich anfangs ja auch stutzen lassen, aber ich wusste nicht wie rüberbringen.
Du hast das grad supi gemacht, ja der Bauch ist schon entscheidend - manchmal ;-)
@Boris
am besten steigt man dahinter, wenn man einfach mal die Dimensionen rum & num
dreht und dann nochmal kreuzderquer.
Naja, zumindest hab ich das so gemacht um einigermassen dahinterzusteigen,
was dabei so abgeht, dahintergestiegen bin ich bislang aber 'wirklich nur' a bissle ;;-))
die NE ;-)
Ich habe deine 2 Anregungen mal eingebaut...
Boris
Hi Well Ness,
...ohne jetzt nochmals die Functions zu überdenken / korrigieren - nur die Hauptprozedur.
Was meinst du...?
Option Explicit
Option Base 1

Sub aktive_Filter()
Dim i           As Integer
Dim j           As Integer
Dim iCount      As Integer
Dim Ash         As Worksheet
Dim iCol        As Integer
Dim myArray()   As Variant
Dim strTemp     As String
Dim lRow        As Long
Set Ash = ActiveSheet
With Ash
If .FilterMode Then
iCol = .AutoFilter.Range.Column - 1
lRow = .AutoFilter.Range.Row
For i = 1 To .AutoFilter.Filters.Count
If .AutoFilter.Filters(i).On Then iCount = iCount + 1
Next i
ReDim myArray(iCount, 7)
For i = 1 To .AutoFilter.Filters.Count
If .AutoFilter.Filters(i).On Then
j = j + 1
myArray(j, 1) = Application.Substitute(Cells(1, i + iCol).Address(0, 0), 1, "")
myArray(j, 2) = Trim(Application.Substitute(Application.Substitute(.Cells(lRow, i + iCol), _
Chr(10), " "), "-", ""))
strTemp = .AutoFilter.Filters(i).Criteria1
myArray(j, 3) = Bedingung(strTemp)
myArray(j, 4) = Bereinigen(strTemp)
strTemp = ""
If .AutoFilter.Filters(i).Operator <> 0 Then
myArray(j, 5) = IIf(.AutoFilter.Filters(i).Operator = xlAnd, "und", "oder")
strTemp = .AutoFilter.Filters(i).Criteria2
myArray(j, 6) = Bedingung(strTemp)
myArray(j, 7) = Bereinigen(strTemp)
strTemp = ""
End If
End If
Next i
Else
MsgBox "Der Autofiltermodus ist im aktiven Blatt nicht aktiv...", , "Kleiner Hinweis..."
Exit Sub
End If
End With
With Worksheets("Daten")
.Cells.ClearContents
.[a1] = "Spalte": .[b1] = "Überschrift": .[c1] = "Bedingung 1": .[d1] = "Kriterium 1"
.[e1] = "Operator": .[f1] = "Bedingung 2": .[g1] = "Kriterium 2"
.[a1:g1].Font.Bold = True
If iCount Then .Range("A2:G" & iCount + 1) = myArray
.Columns("A:G").AutoFit
End With
End Sub

Grüße Boris
Anzeige
...und jetzt auch die Function korrigiert...
Boris
Hi,
so sollte es wohl - hoffentlich - fehlerfrei laufen.
Was sollte ich möglicherweise noch ändern?
In Gänze:
Option Explicit
Option Base 1

Sub aktive_Filter()
Dim i           As Integer
Dim j           As Integer
Dim iCount      As Integer
Dim Ash         As Worksheet
Dim iCol        As Integer
Dim myArray()   As Variant
Dim strTemp     As String
Dim lRow        As Long
Set Ash = ActiveSheet
With Ash
If .FilterMode Then
iCol = .AutoFilter.Range.Column - 1
lRow = .AutoFilter.Range.Row
For i = 1 To .AutoFilter.Filters.Count
If .AutoFilter.Filters(i).On Then iCount = iCount + 1
Next i
ReDim myArray(iCount, 7)
For i = 1 To .AutoFilter.Filters.Count
If .AutoFilter.Filters(i).On Then
j = j + 1
myArray(j, 1) = Application.Substitute(Cells(1, i + iCol).Address(0, 0), 1, "")
myArray(j, 2) = Trim(Application.Substitute(Application.Substitute(.Cells(lRow, i + iCol), _
Chr(10), " "), "-", ""))
strTemp = .AutoFilter.Filters(i).Criteria1
myArray(j, 3) = Bedingung(strTemp)
myArray(j, 4) = Bereinigen(strTemp)
strTemp = ""
If .AutoFilter.Filters(i).Operator <> 0 Then
myArray(j, 5) = IIf(.AutoFilter.Filters(i).Operator = xlAnd, "und", "oder")
strTemp = .AutoFilter.Filters(i).Criteria2
myArray(j, 6) = Bedingung(strTemp)
myArray(j, 7) = Bereinigen(strTemp)
strTemp = ""
End If
End If
Next i
Else
MsgBox "Der Autofiltermodus ist im aktiven Blatt nicht aktiv...", , "Kleiner Hinweis..."
Worksheets("Daten").Cells.ClearContents
Exit Sub
End If
End With
With Worksheets("Daten")
.Cells.ClearContents
.[a1] = "Spalte": .[b1] = "Überschrift": .[c1] = "Bedingung 1": .[d1] = "Kriterium 1"
.[e1] = "Operator": .[f1] = "Bedingung 2": .[g1] = "Kriterium 2"
.[a1:g1].Font.Bold = True
If iCount Then .Range("A2:G" & iCount + 1) = myArray
.Columns("A:G").AutoFit
End With
End Sub


Function Bedingung(str As String) As String
With WorksheetFunction
If Len(str) - Len(.Substitute(.Substitute(str, "=", ""), "*", "")) = 3 Then Bedingung = "enthält": Exit Function
If Len(str) - Len(.Substitute(.Substitute(str, "<>", ""), "*", "")) = 4 Then Bedingung = "enthält nicht": Exit Function
If InStr(1, str, "<>*") > 0 Then Bedingung = "endet nicht mit": Exit Function
If Len(str) - Len(.Substitute(.Substitute(str, "<>", ""), "*", "")) = 3 Then Bedingung = "beginnt nicht mit": Exit Function
If InStr(1, str, "=*") > 0 Then Bedingung = "endet mit": Exit Function
If Len(str) - Len(.Substitute(.Substitute(str, "=", ""), "*", "")) = 2 Then Bedingung = "beginnt mit": Exit Function
If InStr(1, str, "<=") > 0 Then Bedingung = "kleiner oder gleich": Exit Function
If InStr(str, ">=") > 0 Then Bedingung = "größer oder gleich": Exit Function
If InStr(1, str, "<>") > 0 Then Bedingung = "entspricht nicht": Exit Function
If InStr(1, str, "<") > 0 Then Bedingung = "kleiner als": Exit Function
If InStr(1, str, ">") > 0 Then Bedingung = "größer als": Exit Function
If InStr(1, str, "=") > 0 Then Bedingung = "entspricht": Exit Function
Bedingung = ""
End With
End Function


Function Bereinigen(str As String) As String
With WorksheetFunction
Bereinigen = .Substitute(.Substitute(.Substitute(.Substitute(str, ">", ""), "<", ""), "=", ""), "*", "")
End With
End Function

Grüße Boris
~* ;-)
25.05.2004 12:32:11
Well
gemein oder ?
und nur so noch als Möglichkeit, einfach um auch diese Variante aufzuzeigen:

Sub asfdasfd()
With Range("a1:e1")
.Value = Array("test", "asdf", "ghss", "ewr", "gas")
.Font.Bold = True
End With
End Sub

Fare Well
Warum gemein?
Boris
Hi Well Ness,
...diese Variante ist noch eleganter - klar.
Ist denn - im Sinne der Performance - noch Entscheidendes zu ändern?
Grüße Boris
Dann im Klartext
25.05.2004 12:47:08
Well
Such mal im Autofilter nach 1 2 3 Sternchen ;-)
Fare Well
So´n Quatsch ist dann eben nicht erlaubt...;-)
Boris
Hi,
...irgendwo hat das Teil dann halt seine Grenzen;-)
Oder ich lass halt die Funktion "Bedingung" komplett weg - nur dann blickt das ein "Normalanwender" wiederum nicht...
Ne Idee?
Grüße Boris

11 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige