Visual Basic – die neusten Beiträge

WorksheetFunction.match liefert kein Ergebnis in Excel VBA?

Hallo zusammen. Ich habe folgendes Problem. In einer Excel-Datei (ThisWorkbook) habe ich die Tage vom 1.-letzten Tag eines Monats in Reihe 4 stehen. Ein Datum pro Spalte, beginnend in Spalte B. Darunter sollen jeweils Werte aus einer anderen Excel Datei (wbk360) eingetragen werden - mit Hilfe von VBA. In dieser zweiten Datei stehen die Tage untereinander in Spalte A. Ich benutze Worksheetfunction.Match, um die richtige Zeile in der zweiten Datei zu finden, bevor ich von dort Zahlen in meine erste Datei übertragen lasse.

Das hier ist der Teil des VBA Codes, der nicht funktioniert:

    For idatecol = 2 To 21
    On Error Resume Next
    idaterow = WorksheetFunction.Match(ThisWorkbook.ActiveSheet.Cells(4, idatecol).Value, wbk360.ActiveSheet.Range("A:A"), 0)
    
    ThisWorkbook.ActiveSheet.Cells(5, idatecol).Value = wbk360.ActiveSheet.Cells(idaterow, iOccHeader).Value
    ThisWorkbook.ActiveSheet.Cells(6, idatecol).Value = wbk360.ActiveSheet.Cells(idaterow, iIndexHeader).Value
Next idatecol

idaterow sollte mir die Zeile in Datei 2 nennen, in der das Datum steht, das ich gerade in Datei 1 bearbeiten möchte. Wenn ich aber mit F8 Zeile für Zeile durch den Code gehe, bleibt der Wert für idaterow immer 0; es wird also kein Match gefunden.

Die Daten in Datei 2 Spalte A werden als Datum in Excel erkannt. Gebe ich eine Match-Formel direkt auf meinem Worksheet in Datei 1 ein, benutze dort den Datumswert aus Zelle B4 in Datei 1 und suche nach einem Match in Spalte A in Datei 2, bekomme ich 5 als Ergebnis, weil dieses Datum in Zelle A5 in Datei 2 steht.

Offensichtlich findet Excel also das entsprechende Match für jedes einzelne Datum in Datei 1. Mit VBA finde ich aber kein einziges Match.

Hat jemand eine Idee, warum das so ist??? Vielen Dank im Voraus. Rene

Visual Basic, Microsoft Excel, VBA

VBScript Fehler Dateien bereits vorhanden?

Ich schreibe gerade an einer art "DesktopCleaner"... das ganze soll erstmal nur auf meinem System funktionieren.

Option Explicit 
Dim objFSO, objFolder, objSubFld, f1, f2, colFiles, pathname, i 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objFolder = objFSO.GetFolder("D:\") 
ChkSubFld objFolder 

Private Sub ChkSubFld(StartFolder) 
ChkFiles StartFolder 
Set objSubFld = StartFolder
For Each f2 in objSubFld 
ChkSubFld f2 
Next 
End Sub 

Private Sub ChkFiles(Start) 
Set colFiles = Start.Files 
For Each f1 in colFiles 
pathname = objFSO.GetAbsolutePathName(f1)
MsgBox pathname
 If Not (pathname = "D:\4.m3u") Or (pathname = "D:\CyberGhost 6.lnk") Or (pathname = "D:\desktop.ini") Or (pathname = "D:\Electrum-LTC.lnk") Or (pathname = "D:\Electrum.lnk") Or (pathname = "D:\Lazarus.lnk") Or (pathname = "D:\Start Tor Browser.lnk") Or (pathname = "D:\TeamSpeak 3 Client.lnk") Then
objFSO.MoveFile pathname, "D:\Alles Desktop\DesktopCleaner"
End If
Next 
End Sub 

objFSO.MoveFile "E:\VBS\DesktopCleaner\data\TranscodedWallpaper", "C:\Users\Ericmc\AppData\Roaming\Microsoft\Windows\Themesr"
MsgBox "Fertig!" 

Also der Ablauf soll sein: Lösche alle Dateien auf dem Desktop (D:), ändere das Desktop Hintergrundbild. Der Fehler ist wohl beim ersten objFSO.MoveFile .... ich schaffe es aber nicht ihn zu beheben. Es kommt immer die aussage die Dateien würden bereits existieren?? Obwohl der Ordner DesktopCleaner leer ist. Danke für eure Hilfe.

Visual Basic, programmieren, VBS

Die anweisung ist in einem Namespace ungültig?

Ich habe eine Anleitung aus dem Internet für ein Zahlen generator kopiert

Dim Zahl As Integer 'zufallsgenerierte Zahl Dim Counter As Integer 'Zähler der Versuche

Private Sub btn_click_Click()

Dim Eingabe As Integer 'Eingegebene Zahl

'Zufallszahl generieren If Zahl = 0 Then Zahl = Int((Rnd() * 100) + 1) End If

'geschätzte Zahl eingeben Eingabe = tb_eingabe.Value

'Gültigkeitsprüfung If Eingabe > 100 Or Eingabe < 1 Then MsgBox ("Bitte geben Sie eine Zahl zwischen 1 und 100 ein!") tb_eingabe.Value = "" Else 'Richtige Eingabe If Eingabe = Zahl Then Cells(Counter + 2, 1) = Eingabe Cells(Counter + 2, 2) = "geschätzte Zahl richtig!"

    'Abfrage zum erneuten Spielen
    Abfrage = MsgBox("Richtig! Gebrauchte Versuche: " & Counter + 1 & vbLf & "Wollen Sie noch einmal spielen?", vbYesNo)
    If Abfrage = vbNo Then
        Application.Quit
    Else
        Columns("A:B").Select
        Selection.ClearContents
        Range("A1").Select
        ActiveCell.FormulaR1C1 = "geschätzte Zahl"
        Range("B1").Select
        ActiveCell.FormulaR1C1 = "Tipp"
        Range("A2").Select
        Zahl = 0
        Counter = 0
        tb_eingabe.Value = ""
        Exit Sub
    End If
End If

'eingegebene Zahl ist größer
If Eingabe > Zahl Then
    Cells(Counter + 2, 1) = Eingabe
    Cells(Counter + 2, 2) = "geschätzte Zahl zu groß"
    tb_eingabe.Value = ""
    Counter = Counter + 1
End If

'eingegeben Zahl ist kleiner
If Zahl > Eingabe Then
    Cells(Counter + 2, 1) = Eingabe
    Cells(Counter + 2, 2) = "geschätzte Zahl zu klein"
    Counter = Counter + 1
    tb_eingabe.Value = ""
End If

End If

End Sub

als Fehler kommen Die anweisung ist in einem Namespace ungültig wenn ich rauf klicke markiert er

Dim Zahl As Integer Dim Counter As Integer

Private Sub btn_click_Click()

(ganz oben) kann mir wer den code richtig machen?

Visual Basic, IT, programmieren

Wie kann ich Daten von einer Internetseite automatisch in Excel importieren?

Hallo zusammen,

ich bin gerade dabei, eine Datenbank zu erstellen und würde dafür gerne Daten von einer Website automatisch auslesen lassen. Konkret geht es um die Arbeitslosenquoten aller Landkreise und Städte, die von der Bundesagentur für Arbeit monatlich veröffentlicht werden.

Hier ein Link zu einer Beispielstadt: https://statistik.arbeitsagentur.de/Navigation/Statistik/Statistik-nach-Regionen/Politische-Gebietsstruktur/Bayern/Amberg-Stadt-Nav.html

Im Beispiel sollte die Arbeitslosenquote insgesamt (5,9) und der Stand der Angabe (Mai 2016), der über der Tabelle steht, ausgelesen werden.

Im HTML-Code ist die Quote in folgender Zeile angegeben: 5,9 Beim Datum sieht es folgendermaßen aus: Ar­beits­markt im Über­blick - Be­richts­mo­nat Mai 2016 - Am­berg, Stadt

Dabei sollten die ausgelesenen Werte in zwei separaten Excel-Feldern ausgegeben werden. Das muss aber nicht zwingend alles in einem Makro geschehen. Zwei Makros für die unterschiedlichen Felder wären optimal, da ich den Code dann wahrscheinlich auch besser nachvollziehen kann.

Da die direkte Webabfrage über Excel nicht funktioniert, weil die Seite nicht korrekt geladen wird, denke ich, dass VBA hier unumgänglich ist, oder? Ich habe jedoch leider keine Programmierkenntnisse und bin aus den Einträgen in diversen Foren leider auch nicht schlau geworden.

Im Nachhinein müsste das Makro entsprechend anpassbar sein, sodass ich auch die Daten der anderen Städte auslesen kann (die Quellseite ist immer nach dem gleichem Prinzip aufgebaut).

Falls jemand eine Idee hat, wie das Problem zu lösen ist, würde ich mich sehr darüber freuen! Vielen Dank!

Computer, Microsoft, Visual Basic, Microsoft Excel, Daten, VBA, Datenbank, Tabelle, Abfrage

Visual Basic: Verschiedene Boxen ausdrucken, z.B. Richtextbox und Picturebox und Steuersequenz für Barcode?

Hallo Experten, ich habe einen Star Bon-Drucker TSP-100 und habe eine Form entworfen, in die entweder manuell oder automatisch ein Text in eine Textbox und ein Bild in eine Picturebox geladen wird. Nun möchte ich diese Boxen ausdrucken und zwar auf einmal und zusätzlich mit der Grafik, die im Drucker gespeichert ist und mit einem Barcode, den der Drucker per ESC-Sequenz drucken können sollte....

Es sollte so aussehen: 1. Bonkopf 2. Picturebox 3. Barcode 4. Textbox

Ich habe folgenden Code:

Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage 
e.Graphics.DrawString(RichTextBox1.Text, New Font("Verdana", 20, FontStyle.Bold), Brushes.Black, 10, 10)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK
PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
PrintDocument1.Print()
End If
End Sub
    If PrintDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then

        PrintDocument1.PrinterSettings = PrintDialog1.PrinterSettings
        PrintDocument1.Print()
    Else : End If

End Sub

Muss ich für jedes Objekt einen eigenen Printdialog einbetten?

Und wie kann ich es schaffe, dass der Drucker eine Zahl, bsw. 4050607080 als Barcode im Code 128 o.ä. (kein EAN) druckt?

Für eure Antworten danke ich jetzt schon......

Ach ja, und frohe Ostern noch :-)

Visual Basic, programmieren, drucken

Wie mache ich für Informatik ein Würfelspiel in Visual Basic?

Hey :) Ich weiß, ich sollte hier nicht fragen ob ihr meine Hausaufgaben machen könnt und das will ich eigentlich auch garnicht. Allerdings muss ich bis morgen ein Projekt in Visual Basic für Informatik fertig haben und habe noch kaum etwas. Das liegt einerseits an unserem Lahrer, der es nicht schafft uns den Stoff zu vermitteln und andererseits an mir, da ich zu spät angefangen habe, mich für das falsche Spiel entschieden habe und nicht schaffe zu verstehen wie es geht :/ Jetzt wollte ich mal ganz lieb fragen, ob es unter euch netten Menschen möglicherweise jemanden gibt, der auch ein Spiel für Informatik machen musste, dies noch auf seinem Computer hat und gewillt ist es mir zu schicken :) Unser Spiel muss mindestens zwei Würfel, mindestens zwei Spieler und wenn möglich eine Anleitung und eine Möglichkeit des Neustartens haben. Es muss in Visual Basic laufen. Ich habe versucht ein Spiel zu programmieren, allerdings ist es viel zu kompliziert, da ich mich für ein sehr viel zu umfangreiches Spiel entschieden habe. Ich wäre wirklich dermaßen dankbar, wenn mir jemand irgendwie (email,pm,etc.) sein Projekt zukommen lassen könnte und mir somit meine Note retten könnte, Ich habe mich wirklich schon bemüht :/ Vielen vielen Dank, dass ihr zumindest bis hier gelesen habt, euer IanonymMENSCH

Spiele, Computer, Microsoft, Visual Basic, Schule, programmieren, Code, Hausaufgaben, Informatik

Visual Basic 2013 .CSV datei auslesen und editieren

Hallo zusammen, ich möchte, wie im titel schon sichtlich, einfach eine .csv Datei auslesen und diese auch bearbeiten können. Die CSV-Datei ist mit , getrennt und würde z.B. so aussehen:

"Name","TID","Resource","Percentage","Icon","IconExportName"
"String","String","String","int","String","String"
"Min","TID_RESOURCE_10","XP",10,"ic/custom.sc","icon_xp_small"
"Keks","TID_RESOURCE_50","XP",50,"ic/custom.sc","icon_xp_medium"
"Max","TID_RESOURCE_FULL","XP",100,"ic/custom.sc","icon_xp_big"

Das ist nun ein Beispiel welches alle möglichen formen beinhaltet, die ich benötige. Getrennt mit , und Werte innerhalb von " aber auch ohne!

Jetzt bleibt nur die Frage, wie lese ich diese beispiel.csv aus und kann sie in meiner Form bearbeiten?! (Der Pfad wird natürlich einfach bestimmt "C:\CSV-DateiOrdner\csvdatei.csv")

Zeile 1 gibt die Namen der darunter aufgelisteten werte an und somit auch die gerde benötigten Spalten. Zeile 2 kann einfach ignoriert werden oder als ToolTip über die ersten Werte (Titel) gelegt werden. (Zur not kann man die auch mit in die Tabelle einbinden - die höhe dieser Zellen kann man ja verkleinern und als untertitel bezeichnen) Die Restlichen Zeilen geben natürlich jeweils den rest an, also die Werte der zum Titel gehörigen option/Spalte.

Ich hoffe ich habe nun nichts vergessen zu sagen und es ist verständlich genug. Ich bin dankbar für Codes &-beispiele oder auch vernünftige Tutorials.

(Keine aussagen wie " Nimm DataGridView und machs mit StreamReader" oder so ein Zeug !!! Wenn ich mir "denken" könnte wie es geht, würde ich nicht nach code beispielen o.ä. fragen.)

Gruß Patrick.

Visual Basic, programmieren, vb, Visual Studio, csv, Edit

Meistgelesene Beiträge zum Thema Visual Basic