MS-Office-Forum

Zurück   MS-Office-Forum > Microsoft Office > Microsoft Excel
Registrieren Forum Hilfe Alle Foren als gelesen markieren

Banner und Co.

Antworten
Ads
Themen-Optionen Ansicht
Alt 10.08.2018, 14:26   #1
nixblicker
Neuer Benutzer
Neuer Benutzer
Standard VBA - Messwerteliste als Diagramm darstellen

Hallo,

ich lese eine Messwerte-Datei ein die von unserem LabView-Programm erstellt wird. Ich kann mit dem VBA-Script ein Diagramm erstellen, aber die Kurve zeigt keine Messwerte an.

Kann mir jemand einen Tip geben ?

Gruß Günti

_____
Sub Logfile_einlesen_mit_Dialog()

'Letzte Zeile suchen und Diagrammbereich in Variable schreiben
With ActiveSheet
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("B2:B" & LastRow)
ShName = .Name
End With



Dim co As ChartObject

With Range("I2:O20")
Set co = ActiveSheet.ChartObjects.Add(.Left, .Top, .Width, .Height)
End With
With co.Chart
.ChartType = xlXYScatterSmooth
.SeriesCollection.NewSeries
.SeriesCollection(1).Values = Rng1
End With


End Sub
_____
Angehängte Dateien
Dateityp: xlsm Test.xlsm (15,4 KB, 8x aufgerufen)
nixblicker ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 10.08.2018, 15:31   #2
Superingo2
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Günti,

ich habe zwar von VBA sehr wenig Ahnung, aber ich glaube Dein Problem liegt daran, dass in Spalte B keine Werte sondern Texte stehen! Wandele diese mal in Zahlen um!

LG Ingo

__________________

Viel Spaß


.....ein Feedback wäre nett.....
Superingo2 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 07:24   #3
nixblicker
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo Ingo,

du hast recht. Wenn ich die Texte in Zahlen umwandle funktioniert das Diagramm.
Aber wie wandele ich die Texte per VBA in Zahlen um ?

Gruß Günti
nixblicker ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 07:32   #4
Superingo2
MOF Koryphäe
MOF Koryphäe
Standard

Hallo Günti,

von VBA habe ich zu wenig Ahnung, das dürfte aber doch wohl nicht so schwer sein.

LG Ingo

__________________

Viel Spaß


.....ein Feedback wäre nett.....
Superingo2 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 07:44   #5
Fennek11
MOF Profi
MOF Profi
Standard

Hallo,

ungetestet:

Code:

sub T_1()
columns(2).replace "'", ""
end sub
mfg
Fennek11 ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 07:48   #6
Mc Santa
MOF Meister
MOF Meister
Standard

Das geht ganz gut, bestimme den Bereich r, der umgewandelt werden soll und stelle eine Variable temp zur Verfügung. Dann so:

Code:

    Dim r As Range
    Dim temp As Variant

    temp = r
    r.NumberFormat = "General"
    r = temp
speziell für deinen Fall also etwa so:

Code:

Option Explicit

Sub Spalte_B_in_Zahlen_wandeln()
    
    Dim ws As Worksheet
    Dim r As Range
    Dim temp As Variant
    
    Set ws = ActiveSheet
    
    Set r = ws.Cells(ws.Rows.Count, 2).End(xlUp)
    Set r = ws.Range(ws.Cells(1, 2), r)
    
    temp = r
    r.NumberFormat = "General"
    r = temp
End Sub

__________________

Nützliches
Wie erstelle ich eine Pivot-Tabelle? (Link)
Alternative (Link ohne YouTube)

Du kannst hilfreiche Beiträge bewerten (Symbol unten links)
Mc Santa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 08:38   #7
Beverly
MOF Guru
MOF Guru
Standard

Hi Günti,

das geht auch ohne VBA: schreibe einfach in C1 die Formel =B2*1 und ziehe sie nach unten. Anschließend wandelst du den Zellinhalt in Werte um und löschst Spalte B.


GrußformelBeverly's Excel - Inn

__________________

Bitte im Beitrag eine kurze Rückmeldung auch in dem Fall geben, wenn ein Problem gelöst wurde - dies hilft auch anderen Usern, wenn sie den betreffenden Thread lesen.
Möchtest du dich außerdem für die Hilfe bei der Lösung deines Problems bedanken? Das kannst du ganz einfach durch die Bewertung eines Beitrags (Schalter unten links).
Beverly ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 08:49   #8
BoskoBiati
MOF Koryphäe
MOF Koryphäe
Standard

Hi,

ohne VBA geht es noch einfacher:

1 in eine leere Zelle, kopieren, Bereich mit Werten markieren, Inhalte einfügen, Multiplizieren.
Ggf. Muß noch einmal Daten--> Text in Spalten nachgeschaltet werden

__________________

Gruß

Edgar
Ich weiß, daß ich nichts weiß!
BoskoBiati ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 09:11   #9
nixblicker
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

ich habe es jetzt so hinbekommen:

_____
Sub Logfile_einlesen_mit_Dialog()

'Letzte Zeile suchen und Diagrammbereich in Variable schreiben
With ActiveSheet
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("B2:B" & LastRow)
ShName = .Name
End With


'Umwandeln des Zelleninhaltes von Textformat in Zahlenformat
Dim zelle As Range
For Each zelle In ActiveSheet.Range("B2:B" & LastRow)
zelle.Value = 1 * zelle.Value
Next




Dim co As ChartObject

With Range("I2:O20")
Set co = ActiveSheet.ChartObjects.Add(.Left, .Top, .Width, .Height)
End With
With co.Chart
.ChartType = xlXYScatterSmooth
.SeriesCollection.NewSeries
.SeriesCollection(1).Values = Rng1
End With


End Sub
_____


Vielen Dank euch allen.

@Mc Santa - Deine Version hat leider nicht funktioniert.
@Fennek11 - Dein Tip hat nicht funktioniert


Gruß
Günti
nixblicker ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 09:34   #10
Mc Santa
MOF Meister
MOF Meister
Standard

Ich denke so sollte es schon gehen:

Code:

Dim temp
With ActiveSheet.Range("B2:B" & LastRow) 
    temp = .Cells
    .NumberFormat = "General"
    .Cells = temp
End With

__________________

Nützliches
Wie erstelle ich eine Pivot-Tabelle? (Link)
Alternative (Link ohne YouTube)

Du kannst hilfreiche Beiträge bewerten (Symbol unten links)
Mc Santa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 12:48   #11
nixblicker
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

es geht leider nicht.

Gruß
Günti
nixblicker ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 12:56   #12
Mc Santa
MOF Meister
MOF Meister
Standard

Danke für dein Feedback.

Das verwundert mich, aber ohne Datei kann ich derzeit nicht mehr sagen.

__________________

Nützliches
Wie erstelle ich eine Pivot-Tabelle? (Link)
Alternative (Link ohne YouTube)

Du kannst hilfreiche Beiträge bewerten (Symbol unten links)
Mc Santa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 13:20   #13
nixblicker
Threadstarter Threadstarter
Neuer Benutzer
Neuer Benutzer
Standard

Hallo,

im Anhang ist die Datei nochmal ohne meine Änderungen.
Angehängte Dateien
Dateityp: xlsm Test.xlsm (15,4 KB, 2x aufgerufen)
nixblicker ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Alt 15.08.2018, 13:30   #14
Mc Santa
MOF Meister
MOF Meister
Standard

Mir wahr nicht bewusst, dass dieser Ansatz bei Kommazahlen nicht funktioniert. Vielleicht habe ich später eine Idee das zu korrigierten, bis dahin habe ich eine andere Variante gefunden:

Code:

Sub Makro1()

    Dim lastrow As Long
    lastrow = 24
    
    With ActiveSheet.Range("B2:B" & lastrow)
        .NumberFormat = "General"
        .TextToColumns Destination:=.Cells(1, 1), DataType:=xlDelimited, _
            TextQualifier:=xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=False, _
            Semicolon:=True, Comma:=False, Space:=False, Other:=False, FieldInfo _
            :=Array(1, 1), TrailingMinusNumbers:=True
        
    End With
End Sub
@nixblicker: Der Vorteil dieses Codes ist, dass er ohne Schleife auskommt und daher gerade bei großen Datenmengen schneller sein dürfte.

VG, Santa

Edit: wenn man den obigen Code mehrmals ausführt, werden beim zweiten Mal die Kommas durch Punkte ersetzt. Ein Verhalten, dass ich nur beim Code beobachte und nicht wenn ich die Funktion "Text in Spalten" manuell über das Menü aufrufe. Leider kann ich nicht sagen woran das liegt (Excel 2010)

__________________

Nützliches
Wie erstelle ich eine Pivot-Tabelle? (Link)
Alternative (Link ohne YouTube)

Du kannst hilfreiche Beiträge bewerten (Symbol unten links)

Geändert von Mc Santa (15.08.2018 um 13:35 Uhr).
Mc Santa ist offline  
verlinken auf Del.icio.us Diese Seite zu Mister Wong hinzufügen
Antworten Auf Beitrag antworten
Ads
Antworten


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Besucher: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge anzufügen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

vB Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist An.
Gehe zu


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:27 Uhr.


Partner und Co.
Access-Paradies -Alles rund um die Datenbank Microsoft Access -Code -Programme-Tools -Tipps   Kostenlose Tipps & Tricks, Downloads und Programme   www.kulpa-online.com - Tipps - Tricks - Tutorials - Meinungen - Downloads uvm...   vb@rchiv · Willkommen in der Welt der VB Programmierung   Access-Garhammer - Hier finden Sie jede Menge Beispiel-Datenbanken zu Access und mehr ...   mcseboard.de   Die Top Seite für Excel-VBA-Makros uvm.

Powered by: vBulletin Version 3.6.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

Copyright ©2000-2018 MS-Office-Forum. Alle Rechte vorbehalten.
Copyright ©Design: Manuela Kulpa ©Rechte: Günter Kramer
Eine Verwendung der Inhalte in anderen Publikationen, auch auszugsweise,
ist ohne ausdrückliche Zustimmung der Autoren nicht gestattet.