Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

VBA Excel Daten importieren Diagramme erstellen

Frage Entwicklung VB for Applications

Mitglied: Broken

Broken (Level 1) - Jetzt verbinden

05.02.2009, aktualisiert 15:05 Uhr, 9251 Aufrufe, 3 Kommentare

Problem bei der Erstellung eines VBA scripts

Hallo Liebe Gemeinde

Ich bräuchte mal wieder eure Hilfe

ich brauche einen Code mit dessen Hilfe ich ein zweispaltiges .rtf Dokument (1.232;12.313) in Excel in einem neuen Tabellenblatt importiern und in einem Liniendiagramm wiedergeben kann.

Dass importiern einer .rtf datei hatte ich schonmal erfragt, also ist das nicht das Thema,
aber ein neues Tabellenblat mit einem diagramm erstellen hat sich für mich als etwas schwierig erwiesen.

Ich soll um die Hundert .rtf dateien händich in Excel importieren und diese dann in einem Diagramm grafich darstellen.
ich hab es auch soweit hinbekommen mit der importierung und der Auswertung in einem Diagramm, nur bei mir funktioniert es nur in einem Tabellenblatt.
Wenn ich versuche damit ein Zweites anzusteuern, hat er den Falschen Tabellenblattnamen drin und jenachdem auch einen falschen Diagrammnamen.
ich hoffe man kann mir helfen.


Mit freundlichen Grüßen
Broken
Mitglied: kruder
07.02.2009 um 00:43 Uhr
na dann zeige doch mal den source-code ausschnitt in welchem du das zweite tabellenblatt ansteuerst....

grüße
kruder
Bitte warten ..
Mitglied: Broken
10.02.2009 um 07:12 Uhr
Moin

ich kann euch gerne mein Code zeigen

01.
Sheets.Add 
02.
    Range("C3").Select 
03.
    ChDir "\" 
04.
    ChDrive "c:\" 
05.
    'Dateiname = Application.GetOpenFilename("Micrsoft Alle-Dateien (*.*),*.*") 
06.
    Dateiname = Application.GetOpenFilename("RTF-Dateien(*.rtf), *.rtf, Micrsoft Excel-Dateien (*.xls),*.xls, Textdateien (*.txt), *.txt,Alle Dateien (*.*),*.*") 
07.
    If Dateiname = False Then Exit Sub 
08.
    MsgBox "Dateiname:" & vbNewLine & Dateiname 
09.
    Range("A1").Select 
10.
    Cells.Select 
11.
    Range("F29").Activate 
12.
    Selection.ClearContents 
13.
    'Selection.QueryTable.Delete 
14.
    zwichen = "TEXT;" + Dateiname 
15.
    Range("A1").Select 
16.
    With ActiveSheet.QueryTables.Add(Connection:=zwichen, Destination:=Range("A1")) 
17.
         Destination:=Range("A1")) 
18.
        .Name = "Waveform  2" 
19.
        .FieldNames = True 
20.
        .RowNumbers = False 
21.
        .FillAdjacentFormulas = False 
22.
        .PreserveFormatting = True 
23.
        .RefreshOnFileOpen = False 
24.
        .RefreshStyle = xlInsertDeleteCells 
25.
        .SavePassword = False 
26.
        .SaveData = True 
27.
        .AdjustColumnWidth = True 
28.
        .RefreshPeriod = 0 
29.
        .TextFilePromptOnRefresh = False 
30.
        .TextFilePlatform = 850 
31.
        .TextFileStartRow = 1 
32.
        .TextFileParseType = xlDelimited 
33.
        .TextFileTextQualifier = xlTextQualifierDoubleQuote 
34.
        .TextFileConsecutiveDelimiter = False 
35.
        .TextFileTabDelimiter = True 
36.
        .TextFileSemicolonDelimiter = True 
37.
        .TextFileCommaDelimiter = False 
38.
        .TextFileSpaceDelimiter = False 
39.
        .TextFileColumnDataTypes = Array(1, 1, 1) 
40.
        .TextFileTrailingMinusNumbers = True 
41.
        .Refresh BackgroundQuery:=False 
42.
    End With 
43.
    Range("D3").Select 
44.
    Charts.Add 
45.
    ActiveChart.ChartType = xlLineMarkers 
46.
    ActiveChart.SetSourceData Source:=Sheets("Tabelle3").Range("A1:B2002"), _ 
47.
        PlotBy:=xlRows 
48.
    ActiveChart.SeriesCollection(1).XValues = "=Tabelle7!R1C1:R2002C1" 
49.
    ActiveChart.SeriesCollection(1).Values = "=Tabelle7!R2C2:R2002C2" 
50.
    ActiveChart.SeriesCollection(1).Name = "=Tabelle7!R1C2" 
51.
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle7" 
52.
    With ActiveChart 
53.
        .HasTitle = True 
54.
        .ChartTitle.Characters.Text = "1/22/2009" 
55.
        .Axes(xlCategory, xlPrimary).HasTitle = True 
56.
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time [sec]" 
57.
        .Axes(xlValue, xlPrimary).HasTitle = True 
58.
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Pressure [bar]" 
59.
    End With 
60.
    ActiveChart.HasDataTable = False 
61.
    ActiveSheet.Shapes("Diagramm 1").IncrementLeft -81.75 
62.
    ActiveSheet.Shapes("Diagramm 1").IncrementTop -138.75 
63.
    ActiveChart.SeriesCollection(1).Select 
64.
    With Selection.Border 
65.
        .ColorIndex = 1 
66.
        .Weight = xlThick 
67.
        .LineStyle = xlContinuous 
68.
    End With 
69.
    With Selection 
70.
        .MarkerBackgroundColorIndex = xlAutomatic 
71.
        .MarkerForegroundColorIndex = xlAutomatic 
72.
        .MarkerStyle = xlNone 
73.
        .Smooth = False 
74.
        .MarkerSize = 5 
75.
        .Shadow = False 
76.
    End With 
77.
    ActiveChart.ChartArea.Select 
78.
    ActiveSheet.Shapes("Diagramm 1").ScaleWidth 1.55, msoFalse, _ 
79.
        msoScaleFromTopLeft 
80.
End Sub
Mein Problem ist ich kann nicht auf variable Diagramme/Tabellenblätter zugreifen, sondern nur auf eingetragene (Diagramm1/Tabelle6)
könnte man das irgendwie umgehen.
Bitte warten ..
Mitglied: Broken
27.03.2009 um 08:14 Uhr
SO
da keiner bis jetzt eine Antwort hatte
Habe ich ein bisschen herum experimentiert
01.
Public Sub test() 
02.
   
03.
  Dim Anzahl  As Long 
04.
  Dim Fehler  As Boolean 
05.
  Dim Dateien As Variant 
06.
   
07.
  On Error Resume Next 
08.
   
09.
  Application.ScreenUpdating = False 
10.
  Dateien = Application.GetOpenFilename("Alle Dateien (*.*),*.*", False, False, False, True) 
11.
  Fehler = CBool(Dateien) 
12.
   
13.
   
14.
  If Not Fehler And Not Err.Number <> 0 Then 
15.
   
16.
    MsgBox "Sie haben keine Datei ausgewählt!", 48, "Keine Datei ausgewählt" 
17.
     
18.
    Exit Sub 
19.
   
20.
  End If 
21.
  
22.
   
23.
  For Anzahl = LBound(Dateien) To UBound(Dateien) 
24.
MsgBox (Anzahl) 
25.
    'ActiveWorkbook.Worksheets.Add 
26.
    With ActiveSheet.QueryTables.Add(Connection:="TEXT" + Dateien(Anzahl), Destination:=Range("A1")) 
27.
        .Name = Dateien(Anzahl) 
28.
        .FieldNames = True 
29.
        .RowNumbers = False 
30.
        .FillAdjacentFormulas = False 
31.
        .PreserveFormatting = True 
32.
        .RefreshOnFileOpen = False 
33.
        .RefreshStyle = xlInsertDeleteCells 
34.
        .SavePassword = False 
35.
        .SaveData = True 
36.
        .AdjustColumnWidth = True 
37.
        .RefreshPeriod = 0 
38.
        .TextFilePromptOnRefresh = False 
39.
        .TextFilePlatform = 850 
40.
        .TextFileStartRow = 1 
41.
        .TextFileParseType = xlDelimited 
42.
        .TextFileTextQualifier = xlTextQualifierDoubleQuote 
43.
        .TextFileConsecutiveDelimiter = False 
44.
        .TextFileTabDelimiter = True 
45.
        .TextFileSemicolonDelimiter = True 
46.
        .TextFileCommaDelimiter = False 
47.
        .TextFileSpaceDelimiter = False 
48.
        .TextFileOtherDelimiter = "" 
49.
        .TextFileColumnDataTypes = Array(1, 1, 1) 
50.
        .TextFileTrailingMinusNumbers = True 
51.
        .Refresh BackgroundQuery:=False 
52.
    End With 
53.
  
54.
     
55.
     
56.
    Range("A1").Select 
57.
    Selection.CurrentRegion.Select 
58.
    Set objChart = ActiveWorksheet.ChartObjects.Add(100, 50, 300, 200).Chart 
59.
    Charts.Add 
60.
    ActiveChart.ChartType = xlLine 
61.
    ActiveChart.SetSourceData Source:=Sheets(Dateien(Anzahl)).Range("A2:B1001"), PlotBy:=xlColumns 
62.
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Tabelle2" 
63.
    With ActiveChart 
64.
        .HasTitle = False 
65.
        .Axes(xlCategory, xlPrimary).HasTitle = True 
66.
        .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time [sec]" 
67.
        .Axes(xlValue, xlPrimary).HasTitle = True 
68.
        .Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "Pressure [bar]" 
69.
    End With 
70.
     
71.
    ActiveChart.HasLegend = False 
72.
    ActiveChart.HasDataTable = False 
73.
     
74.
    ActiveWindow.Visible = False 
75.
    Windows("test.xls").Activate 
76.
    Range("A1").Select 
77.
         
78.
  Next Anzahl 
79.
   
80.
End Sub
mein Problem ist noch, dass ich die Tabellenblätter nicht mit den Namen der datei bennen kann
und an einigen stellen funktioniert es immernoch nicht
wenn ich mehr als 200 dateien importiere (hauptsachlich *.rtf dateien), gibt es probleme beim importieren, sodass keine Werte angezeigt werden.
gibt es eine möglichkeit die anzahl der Tabellenblätter zu reseten, also wenn man 150 tabellenblätter geöffnet hat und 140 stück löscht, dann ein weiteres hinzufügt soll dieser nicht bei 151 anfangen.

Mit freundlichen Grüßen
Broken
Bitte warten ..
Neuester Wissensbeitrag
Humor (lol)

Linkliste für Adventskalender

(3)

Information von nikoatit zum Thema Humor (lol) ...

Ähnliche Inhalte
Outlook & Mail
Importieren von excel daten in outlook vba - Teil 2 (5)

Frage von Bgervais zum Thema Outlook & Mail ...

Microsoft Office
gelöst Importieren von excel daten in outlook vba (10)

Frage von Bgervais zum Thema Microsoft Office ...

VB for Applications
Bestimmte Daten aus eine CSV-Datei in eine Excel-Tabelle importieren (2)

Frage von MariaElena zum Thema VB for Applications ...

Microsoft Office
gelöst Verschieben von Zellinformation in andere Spalte (per VBA) excel 2010 (5)

Frage von thomas1972 zum Thema Microsoft Office ...

Heiß diskutierte Inhalte
Exchange Server
gelöst Exchange 2010 Berechtigungen wiederherstellen (20)

Frage von semperf1delis zum Thema Exchange Server ...

Windows Server
DHCP Server switchen (20)

Frage von M.Marz zum Thema Windows Server ...

Hardware
gelöst Negative Erfahrungen LAN-Karten (19)

Frage von MegaGiga zum Thema Hardware ...

Exchange Server
DNS Einstellung - zwei feste IPs für Mailserver (15)

Frage von ivan0s zum Thema Exchange Server ...