Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst Ausgabe eines Excel VBA-Makros in eine .txt-Datei umleiten

Mitglied: jschikora

jschikora (Level 1) - Jetzt verbinden

04.08.2011 um 15:25 Uhr, 4286 Aufrufe, 2 Kommentare

Hallo zusammen,

ich habe folgendes Problem und hoffe ihr könnt mir weiterhelfen. Ich habe in einer Excel-Tabelle mehrere Spalten mit Parametern und brauche von diesen Parametern alle Kombinationen. Ein VBA-Skript das mir diese Kombinationen erzeugt habe ich schon geschrieben. Das Problem ist jetzt, dass Excel 2003 "nur" 65536 Zeilen hat, ich aber mittlerweile mehr Kombinationen brauche. Das Makro funktioniert also nicht mehr.

Gibt es eine Möglichkeit die Ausgabe des Makros direkt in eine Textdatei, zum Beispiel auf dem Desktop, umzuleiten, damit ich das Platzproblem umgehe. Der Code für das bisherige Kombinations-Makro sieht so aus:

01.
Sub combinations()
02.

03.
Dim c1() As Variant
04.
Dim c2() As Variant
05.
Dim c3() As Variant
06.
Dim c4() As Variant
07.
Dim c5() As Variant
08.
Dim c6() As Variant
09.
Dim out() As Variant
10.
Dim j, k, l, m, n, o, p As Long
11.

12.

13.
Dim col1 As Range
14.
Dim col2 As Range
15.
Dim col3 As Range
16.
Dim col4 As Range
17.
Dim col5 As Range
18.
Dim col6 As Range
19.
Dim out1 As Range
20.

21.

22.
Set col1 = Range("A2", Range("A2").End(xlDown))
23.
Set col2 = Range("B2", Range("B2").End(xlDown))
24.
Set col3 = Range("C2", Range("C2").End(xlDown))
25.
Set col4 = Range("D2", Range("D2").End(xlDown))
26.
Set col5 = Range("E2", Range("E2").End(xlDown))
27.
Set col6 = Range("F2", Range("F2").End(xlDown))
28.

29.
c1 = col1
30.
c2 = col2
31.
c3 = col3
32.
c4 = col4
33.
c5 = col5
34.
c6 = col6
35.

36.
Set out1 = Range("H2", Range("M2").Offset(UBound(c1) * UBound(c2) * UBound(c3) * UBound(c4) * UBound(c5) * UBound(c6)))
37.
out = out1
38.

39.
j = 1
40.
k = 1
41.
l = 1
42.
m = 1
43.
n = 1
44.
o = 1
45.
p = 1
46.

47.
Do While p <= UBound(c6)
48.
    Do While o <= UBound(c5)
49.
        Do While n <= UBound(c4)
50.
            Do While j <= UBound(c3)
51.
                Do While k <= UBound(c2)
52.
                    Do While l <= UBound(c1)
53.
                        out(m, 1) = c1(l, 1)
54.
                        out(m, 2) = c2(k, 1)
55.
                        out(m, 3) = c3(j, 1)
56.
                        out(m, 4) = c4(n, 1)
57.
                        out(m, 5) = c5(o, 1)
58.
                        out(m, 6) = c6(p, 1)
59.
                        m = m + 1
60.
                        l = l + 1
61.
                    Loop
62.
                    l = 1
63.
                    k = k + 1
64.
                Loop
65.
                k = 1
66.
                j = j + 1
67.
            Loop
68.
            j = 1
69.
            n = n + 1
70.
        Loop
71.
        n = 1
72.
        o = o + 1
73.
    Loop
74.
    o = 1
75.
    p = p + 1
76.
Loop
77.

78.
out1.Value = out
79.
End Sub
80.
Mitglied: bastla
04.08.2011 um 15:52 Uhr
Hallo jschikora!

Du könntest vor Zeile 46 das Trennzeichen zwischen den einzelnen Werten festlegen sowie die Zieldatei erstellen mit
01.
Delim = vbTab 'Trennzeichen zwischen den Spalten
02.

03.
Set fso = CreateObject("Scripting.FileSystemObject")
04.
Set Datei = fso.CreateTextFile(CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\Ausgabe.txt")
und dann die Zeilen 53 bis 58 durch
Datei.WriteLine c1(l, 1) & Delim & c2(k, 1) & Delim & c3(j, 1) & Delim & c4(n, 1) & Delim & c5(o, 1) & Delim & c6(p, 1)
ersetzen.

Das Testen überlasse ich Dir ...

Grüße
bastla
Bitte warten ..
Mitglied: 76109
05.08.2011 um 11:32 Uhr
Hallo jschikora!

Den Anfangsteil könnte man etwas vereinfachen:
01.
    Set col1 = Range("A2", Range("A2").End(xlDown))
02.
    Set col2 = Range("B2", Range("B2").End(xlDown))
03.
    Set col3 = Range("C2", Range("C2").End(xlDown))
04.
    Set col4 = Range("D2", Range("D2").End(xlDown))
05.
    Set col5 = Range("E2", Range("E2").End(xlDown))
06.
    Set col6 = Range("F2", Range("F2").End(xlDown))
07.
    
08.
    Set cols = Union(col1, col2, col3, col4, col5, col6)
09.
    
10.
    For Each cell In cols.Cells
11.
       'durläuft alle Zellen von col1 - col6
12.
    Next
13.
    
14.
    Set out1 = Range("H2", Range("M2").Offset(cols.Cells.Count - 1))
Gruß Dieter
Bitte warten ..
Ähnliche Inhalte
VB for Applications
Excel Makros
Frage von chaos2goVB for Applications2 Kommentare

Hallo Gemeinde, File Größe über 500k Einträge Steigend . ich bekomme Monatlich ein Raw Dump aus unserer DB als ...

Sicherheitsgrundlagen
Bestimmte VBA Makros zulassen
Frage von geocastSicherheitsgrundlagen6 Kommentare

Guten Morgen Zusammen Ich habe folgendes Problem. Ich habe auf allen PCs Makros deaktiviert, wie es auch sein soll ...

Microsoft Office

Txt. Datei in Excel auswerten und Gruppieren

Frage von LucaMarcMicrosoft Office5 Kommentare

Hallo liebe Administrator Community, dies hier ist mein erster Beitrag und direkt eine Frage. Ich habe das Problem das ...

Basic

Excel-Datei mit Makros drahtlos mit 3 Laptop gleichzeitig bearbeiten

gelöst Frage von Manfred154Basic2 Kommentare

Welche techn. Möglichkeiten gibt es um eine Excel-Datei mit Makros gleichzeitig an 3 Laptops drahtlos zu bearbeiten? Die Laptop`s ...

Neue Wissensbeiträge
Firewall
PfSense 2.5.0 benötigt doch kein AES-NI
Information von ChriBo vor 1 TagFirewall1 Kommentar

Hallo, Wie sich einige hier erinnern werden hat Jim Thompson in diesem Aritkel beschrieben, daß ab Version 2.5.0 ein ...

Internet
Copyright-Reform: Upload-Filter
Information von Frank vor 2 TagenInternet1 Kommentar

Hallo, viele Menschen reden aktuell von Upload-Filtern. Sie reden darüber, als wären es eine Selbstverständlichkeit, das Upload-Filter den Seitenbetreibern ...

Google Android

Blokada: Tracking und Werbung unter Android unterbinden

Information von AnkhMorpork vor 3 TagenGoogle Android1 Kommentar

In Ergänzung zu meinem vorherigen Beitrag: Blokada efficiently blocks ads, tracking and malware. It saves your data plan, makes ...

Google Android
Facebooks unsichtbare Datensammlung
Information von AnkhMorpork vor 3 TagenGoogle Android3 Kommentare

Rund 30 Prozent aller Apps im Play-Store nehmen Kontakt zu Facebook auf, sobald man sie startet. So erfährt der ...

Heiß diskutierte Inhalte
Linux Userverwaltung
LogIn Versuche beschränken auf EINEN Versuch
gelöst Frage von GarroshLinux Userverwaltung23 Kommentare

Folgendes Problem Ich habe einen dezidierten Server beim Hoster gemietet, installiert ist Ubuntu 18.04.2 LTS‬ und als Webinterface Plesk. ...

Backup
Wo installiert man Veeam bei SoHo?
Frage von EDVMan27Backup14 Kommentare

Hallo, nachdem ich die neue Veeam CE bei mir getestet habe, wollte ich es einmal bei einem Kunden testen. ...

CPU, RAM, Mainboards
Kann eine "virtuelle CPU" bei VMware die Leistung einer phys. CPU entsprechen ?
Frage von Troja71CPU, RAM, Mainboards11 Kommentare

Eine Software fordert im Betrieb 8 CPU mit x GHz Taktung. Verfügbar ist "nur" eine VM mit 8 vCPUs ...

Batch & Shell
Tasklist überprüfen
Frage von IleiesBatch & Shell10 Kommentare

Hallo zusammen, Wie kann ich in Batch überprüfen, ob gerade der Prozess "Skype.exe" ausgeführt wird? Also nicht so dass ...