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

Hilfe beim Verstehen des Codes

Hilfe beim Verstehen des Codes
26.02.2018 10:47:27
Burak
Moin, kommentiere grade meinen Code und hapere an der Verständnis und an der Logik mancher Sachen.
1. Was für einen Sinn macht denn:

With .Range("J2:N" & Zeilenzahl)
.Value = .Value
End With
bzw. im Kontext:
    'Datumsspalten formatieren
With Union(.Range("J2:J" & Zeilenzahl), .Range("M2:M" & Zeilenzahl))
.FormulaR1C1 = "=DATEVALUE(MID(RC[-1],7,2)&"".""&MID(RC[-1],5,2)&"".""&LEFT(RC[-1],4))"
.NumberFormat = "dd.mm.yyyy"
End With
'Uhrzeitspalten formatieren
With Union(.Range("K2:K" & Zeilenzahl), .Range("N2:N" & Zeilenzahl))
.FormulaR1C1 = "=TIMEVALUE(MID(RC[-2],9,2)&"":""&MID(RC[-2],11,2)&"":""&RIGHT(RC[-2],2)) _
.NumberFormat = "hh:mm:ss"
End With
With .Range("J2:N" & Zeilenzahl)
.Value = .Value
End With

2. Dann folgender Code im Zusammenhang mit dem Import einer Access-DB
Private Function ADO_Access(ByVal dbFile As String, ByVal TableName As String, Optional Fields  _
As String = "*", Optional WhereString As String = "") As Object
Dim objCon As Object
Dim SQL As String, Con As String
On Error GoTo ErrorHandler
If ((GetAttr(dbFile) And vbDirectory)  vbDirectory) Then
Con = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & dbFile & ";" & "Jet OLEDB: _
Engine Type=5;" & "Persist Security Info=False;"
Set objCon = CreateObject("ADODB.Connection")
objCon.Open Con
SQL = "select " & Fields & " from [" & TableName & "]" & WhereString & ";"
Set ADO_Access = CreateObject("ADODB.Recordset")
ADO_Access.Open SQL, objCon, 3, 4, 1
End If
Exit Function
ErrorHandler:
Set ADO_Access = Nothing
End Function

3. Was genau bewirkt das Refresh einer Querytable?
4. Was ist der Unterschied zwischen FormulaLocal = "..." und einfach Range(). Value = "..."?
5. Was bewirkt "ByVal" in den Klammern eines Subs? In diesem Fall
Private Sub PutAboveAverageIntoSheet(ByVal TargetName As String, _
Faktor1 As Long, Faktor2 As Long, _
Optional ByVal RemoveAvrg As Boolean = False)
Danke euch und liebe Grüße

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Hilfe beim Verstehen des Codes
26.02.2018 11:01:21
Werner
Hallo Burak,
1. Die Formeln im angegebenen Bereich werden durch ihren jeweiligen Wert ersetzt
2. keine Ahnung was du meinst
3. Aktualisieren der externen Datenverbindung
4. keine Ahnung was du meinst
5. siehe hier: https://www.herber.de/vbabasics/0008.html
Gruß Werner
AW: Hilfe beim Verstehen des Codes
26.02.2018 11:06:11
Burak
schonmal danke dir!
zu 2.: Anders formuliert was machen ErrorHandler im Allgemeinen
zu 4.
also ich verstehe die Zeilen nicht genau, aber kann ich nicht statt
Worksheets("Hilfstabelle").Range(.Cells(2, loSpalte), .Cells(loLetzte, loSpalte)).FormulaLocal = "=WENN(B1=B2;0;ZEILE())"
auch ungefährt sowas schreiben wie
Worksheets("Hilfstabelle").Columns(loSpalte).Value = "=WENN(B1=B2;0;ZEILE())"
also abgesehen davon dass hier die GESAMTE Spalte betroffen wäre und abgesehen von Zeichen- und Rechtschreibfehlern.
Anzeige
AW: Hilfe beim Verstehen des Codes
26.02.2018 11:44:57
Werner
Hallo Burak,
hast du die zweite Codezeile denn schon mal versucht? Läuft in einen Fehler. Du sagst, dass du einen Wert (.Value) in den Bereich schreiben willst. Tatsächlich schreibst du dann aber (bzw. willst das) eine Formel in den Bereich - Knall.
Du mußt Excel schon mitteilen, dass du eine Formel schreibst.
Und ein ErrorHandler macht das, was sein Name schon sagt. Fehlerbehandlung. Fehler die im Codeablauf auftreten können werden abgefangen und entsprechend behandelt.
Public Sub aaa()
Dim loAnzahl As Long
'Fehlerbehandlung
'bei Fehler zu ErrorHandler
On Error GoTo ErrorHandler
loAnzahl = InputBox("Bitte eine Ganzzahl eingeben:", "Eingabe")
MsgBox loAnzahl
Exit Sub
ErrorHandler:
'Fehler zurücksetzen
On Error GoTo 0
MsgBox "Eingabe war keine Zahl."
End Sub
Gib in die InputBox mal einen String ein. Normalerweise würde der Code mit einer Fehlermeldung "Typenunverträglichkeit" aussteigen. Jetzt mit Fehlerbehandlung nicht. Der Code läuft durch und gibt eine MessageBox aus.
Schmeiß mal die komplette Fehlerbehandlung raus und gib noch mal einen String in die InputBox ein.
Gruß Werner
Anzeige
AW: Hilfe beim Verstehen des Codes
26.02.2018 11:58:52
Burak
ah super, klar macht beides Sinn. Danke nochmals!
Gerne u.Danke für die Rückmeldung. o.w.T.
26.02.2018 13:12:33
Werner

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige