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

Automatisch Variable setzen im Script

Automatisch Variable setzen im Script
27.05.2014 08:56:30
Chantal
Hallo zusammen
Ich habe mir mit Hilfe von Foreneinträgen inzwischen ein VBA Konstruiert, das mir diverse CSV's aus einem Ordner ausliest und anschliessend eine Zusammenfassungsseite erstellt von all diesen vorhandenen Tabellenblättern. Wenn das Macro dann nach meinen Wünschen funktioniert enthält es an die 80 Tabellenblätter die so automatisch generiert werden.
Im Übersichtsblatt werden mir in den Spalten B die Tabellenblätter angegeben. Diese sind bereits sehr gut beschreibend. Nun sollte ich aus jedem Tabellenblatt die Spalte Y zusammen zählen in der sip:* steht. Ich habe nun folgendes Makro das mir die Variablen nicht richtig ausfüllt:
Sub Macro5()
Dim nRow As Integer
Dim nVar As ListObject
For nRow = 5 To 50
Cells(nRow, 3).Formula = "=COUNTIF('nVar'!C[22],""sip:*"")"
Next nRow
End Sub
Die Formel wird richtig ausgefüllt wenn ich nVar ersetze mit dem Namen aus der Spalte B. Aber diesen sollte er mir automatisch auslesen und einsetzen für in diesem Fall alle 45 Zeilen.
Könnt ihr mir helfen?
Danke und Gruss
Chantal

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
Bitte um Beispielmappe
27.05.2014 09:11:38
EtoPHG
Hallo Chantal,
Aus deiner Anfrage geht nicht klar hervor, wie die Quellmappe aufgebaut ist.
Kannst du eine anonymisierte Beispielmappe mit Übersichtsblatt und 2-3 Detailblättern ins Forum stellen? Diese sollte auch den bereits bestehenden Code (CSV auslesen) beinhalten. Benutze den [ Zum File-Upload ] Button unter dem Editierfenster des Forums.
Gruess Hansueli

AW: Automatisch Variable setzen im Script
27.05.2014 09:35:33
Chantal
Hi Hansueli
Anbei findest du die Arbeitsmappe (anonymisiert und sehr viel kleiner)
https://www.herber.de/bbs/user/90865.xlsm
ich generiere auf unseren Servern die ca 70 Auszüge aus dem Active Directory und lass diese bei mir auf C:\temp\test speichern. (Aufbau in der Kurzform nur Vorname, Nachname und SIP). Das Makro liest mir dann die Files in die Excel Tabelle ein und anschliessend alle Tabellenblätter.
Damit du den Code direkt siehst ohne die Mappe öffnen zu müssen hier:
Sub ImportiereCSVDateien()
Const CSVPFAD = "C:\temp\lyncrollout"
Dim wbTarget As Workbook, wbSource As Workbook, ws As Worksheet
Set fso = CreateObject("Scripting.Filesystemobject")
Set wbTarget = ActiveWorkbook
Application.DisplayAlerts = False
'Lösche alle Worksheets bevor wir alle neu anlegen
If wbTarget.Worksheets.Count > 1 Then
For i = 1 To wbTarget.Worksheets.Count - 1
wbTarget.Worksheets(i).Delete
Next
End If
For Each f In fso.GetFolder(CSVPFAD).Files
If LCase(Right(f.Name, 3)) = "csv" Then
Workbooks.OpenText Filename:=f.Path
Set wbSource = ActiveWorkbook
On Error Resume Next
Set ws = wbTarget.Worksheets(f.Name)
If Err  0 Then
Set ws = wbTarget.Worksheets.Add
ws.Name = f.Name
ws.Range("A:ZZ").Clear
End If
wbSource.Worksheets(1).Range("A:A").TextToColumns Destination:=Range("A1"),  _
DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Semicolon:=True, TrailingMinusNumbers:=True
wbSource.Worksheets(1).Range("A:AE").Copy Destination:=ws.Range("A1")
wbSource.Close False
End If
Next
Application.DisplayAlerts = True
Set fso = Nothing
Dim tbl As ListObject
For i = 1 To ActiveWorkbook.Sheets.Count
Sheets(i).Select
Range("A1:Z" & Cells(Rows.Count, 1).End(xlUp).Row).Select
Set tbl = ActiveSheet.ListObjects.Add(xlSrcRange, Selection, , xlYes)
tbl.TableStyle = "TableStyleLight1"
Next i
Dim Tabelle As Worksheet
Dim t As Integer
Worksheets.Add.Move before:=Worksheets(1)
ActiveSheet.Name = "Overview"
Cells(1, 1).Value = "Enthaltene Blätter"
t = 3
For Each Tabelle In ActiveWorkbook.Worksheets
If Tabelle.Name  "Overview" Then
Cells(i, 2).Value = Tabelle.Name
Tabelle.Hyperlinks.Add Anchor:=Cells(i, 2), Address:="", SubAddress:= _
Tabelle.Name & "!A1", _
TextToDisplay:=Tabelle.Name
i = i + 1
End If
Next Tabelle
End Sub

und dazu müsste ich nun dieses weitere Makro einbauen, das mir diese Count Formel einsetzt der Reihe nach.
Gruss
Chantal

Anzeige
AW: Automatisch Variable setzen im Script
27.05.2014 09:43:41
Daniel
Hi
For nRow = 5 To 50
Cells(nRow, 3).Formula = "=COUNTIF('" & Cells(nRow, 2).value &"'!C[22],""sip:*"")"
Next nRow
dem Zellbezug nach müsstest du aber .FormulaR1C1 verwenden.
Gruß Daniel

AW: Automatisch Variable setzen im Script
27.05.2014 09:57:30
Chantal
Ich kann es kaum fassen, das die Antwort so simpel ist. Aber wie sich herausgestellt hat, ist sie in VB oft sehr simpel. Je kürzer der Programmcode je besser.
Vielen herzlichen Dank für diese super schnelle und funktionelle Lösung!! :) Mein Tag ist gerettet :)
DANKE :)

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige