Excel Vba code

Software die niet past in bovenstaande onderwerpen
Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Excel Vba code

Berichtdoor Gij Kieken » 28 Okt 2016, 14:48

Voor een projectje om data te loggen heb ik wat Vba code geschreven.
Als beginner heb ik de code opgesplitst in modules om het stapsgewijs op te bouwen.
De code werkt op zich goed,ik moet wel nog een paar On Error routines erbij plaatsen.
De opbouw:
een paar interfacen gemaakt voor de arduino's met hier en daar wat Hardware debouncing omdat dit in interrupt service routines moeilijker gaat
Arduino nano(door plaats gebrek)gekoppeld met HC-12 tranceiver ,dit is de zender kant
Arduino Uno R3 met HC-12, dit is de ontvanger
Usb verbinding met Laptop (Win XP,Vista,Win7)maakt niet uit en data loggen in Excel2007
Dus dit lukt momenteel.
Nu wil ik de Vba code verzamelen in een Sub en daar sluipt er een fout in (waarschijnlijk in het declaratie gedeelte)heb al veel zitten knoeien maar raak er niet uit.
Wie kent wat Vba voor Excel ?
Natuurlijk post ik dan de code waar het fout gaat of wel de gehele file ,anders wordt het toch maar een warboeltje.

Advertisement

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Excel Vba code

Berichtdoor nicoverduin » 28 Okt 2016, 16:09

Zoiets? Dus zet je code hier maar neer ...

vb code
Sub Vervolgkeuzelijst5_BijWijzigen()
Dim dd As DropDown
Set dd = ActiveSheet.DropDowns("Vervolgkeuzelijst 5")
Blad4.Cells(1, 3).Value = Blad4.Cells(dd.Value, 2).Value
End Sub
Sub CycleThrough()
' ************************************************************************************
' * Subroutine : CycleThrough()
' * Purpose : Generate a PinHeaders.h, TestCases.h and fieldLengths.h
' * file with all the pins in the sheet
' * including the pin labels
' ************************************************************************************
Dim ColumnCtr As Integer ' keeps track of Columns
Dim RowCtr As Integer ' keeps track of Rows
Dim MaxFieldlength As Integer ' longest pin description encountered in file
Dim MaxTestCaselength As Integer ' longest test case description encountered in file
Dim NumberOfPins As Integer ' number of pins encountered in the sheet
Dim NumberOfInputPins As Integer ' number of pins defined as input
Dim ErrorCnt As Integer ' counts the number of errors during validation
Dim pinRow As Integer ' row containing pin numbers
Dim pinType As Integer ' row containgin the pin types
Dim pinName As Integer ' row containing pin type
'
' set the rtow constants
'
pinRow = 3
pinType = 4
pinName = 5
'
' create the file object for the include file. the file will be stored
' in the same folder as where this excel file is stored
'
Set FSO = CreateObject("Scripting.FileSystemObject")
Set ofile = FSO.CreateTextFile(ThisWorkbook.Path + "\" + "AutoTestFile.h")
ofile.writeline "/**"
ofile.writeline " * @file AutoTestFile.h"
ofile.writeline " *"
ofile.writeline " * this is a generated file from generateTestSets.xls"
ofile.writeline " * It contains:"
ofile.writeline " * a) all the used pins and their names"
ofile.writeline " * b) all the testcases"
ofile.writeline " */"
ofile.writeline ""
ofile.writeline "#ifndef AUTOTESTFILE_H_"
ofile.writeline "#define AUTOTESTFILE_H_"
'
' Validate the test set first
'
ErrorCnt = 0
For ColumnCtr = 2 To 100
'
' check if we are through all the fields
'
If IsEmpty(Cells(pinRow, ColumnCtr).Value) Then
'
' No more columns to process
'
Exit For
End If

If Cells(pinType, ColumnCtr).Value <> "I" And Cells(pinType, ColumnCtr).Value <> "O" And Cells(pinType, ColumnCtr).Value <> "AI" Then
'
' pin name is too long and wil cause errors in program
'
' So set background to RED color
'
Cells(pinType, ColumnCtr).Interior.Color = RGB(255, 0, 0)
ErrorCnt = ErrorCnt + 1
Else
Cells(pinType, ColumnCtr).Interior.Color = RGB(255, 255, 255)
End If
'
' check if we are through all the fields
'
If Len(Cells(pinName, ColumnCtr).Value) > 10 Then
'
' pin name is too long and wil cause errors in program
'
' So set background to RED color
'
Cells(pinName, ColumnCtr).Interior.Color = RGB(255, 0, 0)
ErrorCnt = ErrorCnt + 1
Else
Cells(pinRow, ColumnCtr).Interior.Color = RGB(255, 255, 255)
End If

Next ColumnCtr
'
' Validate length test case descriptions
'
For RowCtr = 6 To 10000
'
' first check if we have processed the last row. Determined with an empty field
' in column 1
'
If IsEmpty(Cells(RowCtr, 1).Value) Then
'
' No more rows to process
'
Exit For
End If
If Len(Cells(RowCtr, 1).Value) > 25 Then
'
' pin name is too long and wil cause errors in program
'
' So set background to RED color
'
Cells(RowCtr, 1).Interior.Color = RGB(255, 0, 0)
ErrorCnt = ErrorCnt + 1
Else
Cells(RowCtr, 1).Interior.Color = RGB(255, 255, 255)
End If

Next RowCtr
'
' test if we found errors
'
If ErrorCnt = 0 Then
ofile.writeline "#include <AutoTest.h>"
ofile.writeline "//"
ofile.writeline "// write the generated headers. "
ofile.writeline "//"
ofile.writeline "const PROGMEM char pinHeaders[] ="
'
' loop through the Headers and pick out the input and output labels
' skip column 1 as this is descriptive
' the 100 columns is set as I do not expect any boards with more than 100 IO pins
'
MaxFieldlength = 0 ' no fields encountered yet
NumberOfPins = 0 ' reset pin count used
NumberOfInputPins = 0 ' reset INPUT pin count


For ColumnCtr = 2 To 100
If IsEmpty(Cells(pinRow, ColumnCtr).Value) Then
'
' No more columns to process
'
Exit For
Else
'
' We have a valid column so write a line with pinnumber and description
'
ofile.write """"
'
' write pin number. if it is an analog pin, we need to translate it. Now we will just do it for the Arduino
'
If Cells(pinRow, ColumnCtr).Value = "AI" Then
'
' this is an analog pin so get the offset from the boards page
'
ofile.write Cells(pinRow, ColumnCtr).Value + Blad4.Cells(1, 3).Value
Else
'
' this is a digital pin
'
ofile.write Cells(pinRow, ColumnCtr).Value
End If
ofile.write ","
'
' write pin desciption
'
ofile.write Cells(pinName, ColumnCtr).Value
ofile.writeline "\n"""
'
' Check for longest length description
'
If Len(Cells(pinName, ColumnCtr).Value) > MaxFieldlength Then
MaxFieldlength = Len(Cells(pinName, ColumnCtr).Value)
End If
'
' increment pin count
'
NumberOfPins = NumberOfPins + 1
'
' check for number of INPUT pins
'
If Cells(pinType, ColumnCtr).Value = "I" Or Cells(pinType, ColumnCtr).Value = "AI" Then
NumberOfInputPins = NumberOfInputPins + 1
End If

End If
Next ColumnCtr
ofile.write """"
ofile.write "\n" ' file terminator in flash memory
ofile.writeline """"
ofile.writeline ""
ofile.writeline ";"
'
' Now generate all the testcases
'
ofile.writeline "//"
ofile.writeline "// Testcases"
ofile.writeline "//"
ofile.writeline "const PROGMEM char testCases[] ="
'
' loop through the cases and generate the test case description, the input pins and the delays
' the 10000 rows is set as I do not expect any boards with more than 10000 testcases
' row 4 is the first testcase
'
For RowCtr = 6 To 10000
'
' first check if we have processed the last row. Determined with an empty field
' in column 1
'
If IsEmpty(Cells(RowCtr, 1).Value) Then
'
' No more columns to process
'
Exit For
Else
'
' We have a testcase so start generating
'
ofile.write """"
'
' Write test case description
'
ofile.write Cells(RowCtr, 1).Value
ofile.write ","
'
' Check if this was the longest length
'
If Len(Cells(RowCtr, 1).Value) > MaxTestCaselength Then
MaxTestCaselength = Len(Cells(RowCtr, 1).Value)
End If
'
' now write the input pin settings
'
For ColumnCtr = 2 To 10000
'
' first check if it is n input or output pin. This is shown in row 3 with the
' symbol "I"
'
If Cells(pinType, ColumnCtr).Value = "I" Or Cells(pinType, ColumnCtr).Value = "O" Or Cells(pinType, ColumnCtr).Value = "AI" Then
'
' this is a valid IO pin. Now check if it is input
'
If Cells(pinType, ColumnCtr).Value = "I" Or Cells(pinType, ColumnCtr).Value = "AI" Then
'
' this is an input pin. If the field is not filled, it will be set to 0 (zero)
'
If Len(Cells(RowCtr, ColumnCtr).Value) > 0 Then
ofile.write Cells(RowCtr, ColumnCtr).Value
Else
ofile.write "0"
End If
ofile.write ","
End If
Else
'
' done processing columns
'
Exit For
End If
Next ColumnCtr
'
' column ctr already points to the delay time
'
If Len(Cells(RowCtr, ColumnCtr).Value) > 0 Then
ofile.write Cells(RowCtr, ColumnCtr).Value
Else
ofile.write "0"
End If

ofile.write "\n"""
'
' write any additional commentry
'
If Len(Cells(RowCtr, ColumnCtr + 1).Value) <> 0 Then
'
' there are comments
'
ofile.write " //"
ofile.writeline Cells(RowCtr, ColumnCtr + 1).Value
Else
ofile.writeline ""
End If
End If
Next RowCtr
'
' close the file
'
ofile.write """"
ofile.write "\n" ' file terminator in flash memory
ofile.write """"
ofile.writeline ";"
ofile.writeline "//"
ofile.writeline "// Program paramaters"
ofile.writeline "//"
ofile.writeline ""
ofile.write "#define NUMBER_OF_PINS "
ofile.writeline NumberOfPins
ofile.writeline ""
ofile.write "#define NUMBER_OF_INPUT_PINS "
ofile.writeline NumberOfInputPins
ofile.write "#define MAX_FIELD_LENGTH "
ofile.writeline (MaxFieldlength + 1)
ofile.write "#define MAX_DESCRIPTION_LENGTH "
ofile.writeline (MaxTestCaselength + 1)
ofile.writeline ""
ofile.writeline "//"
ofile.writeline "// Create the AutoTest object"
ofile.writeline "//"
ofile.writeline "AutoTest autotest (NUMBER_OF_PINS,NUMBER_OF_INPUT_PINS,MAX_FIELD_LENGTH,MAX_DESCRIPTION_LENGTH, pinHeaders, testCases);"
ofile.writeline "//"
ofile.writeline "// redefine functions to replace the original pinMode(), digitalRead(),digitalWrite(), analogRead() and analogWrite() functions"
ofile.writeline "//"
ofile.writeline "#define pinMode(a,b) autotest.callPinMode(a,b)"
ofile.writeline "#define digitalRead(a) autotest.callDigitalRead(a)"
ofile.writeline "#define digitalWrite(a,b) autotest.callDigitalWrite(a, b)"
ofile.writeline "#define analogRead(a) autotest.callAnalogRead(a)"
ofile.writeline "#define analogWrite(a,b) autotest.callAnalogWrite(a, b)"
ofile.writeline "#endif // AUTOTESTFILE_H_"
'
' close the file
'
ofile.Close
Else
ofile.writeline "ERRORS FOUND IN EXCEL SHEET"
ofile.write "Error Count = "
ofile.writeline ErrorCnt
ofile.Close
End If
End Sub
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Excel Vba code

Berichtdoor Gij Kieken » 28 Okt 2016, 18:33

vb code
Private Sub imgBereken_Click()
'Kopieëert berekend en filtert de gegevens van Blad "RpmAchteras" en plakt deze in Blad "Lap Time"

Dim lastrow As Long, erow As Long 'erow empty row
Dim s As Integer 's Start lap
Dim MinTime As Date 'Belangrijk Dim As Date omdat we met tijd rekenen
Dim BestTime As Range
Dim MaxSpeed As Variant 'Dim as variant omdat het een decimaal is met een cijfer na de comma
Dim BestSpeed As Range
Dim LapMaxSpeed As Range
Dim valMaxSpeed As Integer 'Need to calculate LapMaxSpeed (value-1) because of warmup round
Dim rngTopSpeed As Range 'To find out the Lap of TopSpeed

Application.ScreenUpdating = False 'ScreenUpdate uitschakelen

'Filtert de ronde tijden & aantal ronden
lastrow = Sheets("RpmAchteras").Cells(Rows.Count, 3).End(xlUp).Row
For i = 2 To lastrow
If IsNumeric(Sheets("RpmAchteras").Cells(i, 3)) _
And Sheets("RpmAchteras").Cells(i, 3) > 0 Then 'Test value is number and > zero

Sheets("RpmAchteras").Cells(i, 3).Copy
Sheets("Lap Time").Select
Sheets("Lap Time").Activate
erow = Sheets("Lap Time").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 'Row1 are the headers
Sheets("RpmAchteras").Paste Destination:=Sheets("Lap Time").Cells(erow, 1) 'Lap Time

Sheets("RpmAchteras").Cells(i, 2).Copy
Sheets("RpmAchteras").Paste Destination:=Sheets("Lap Time").Cells(erow, 2) 'Lap Number
Sheets("Lap Time").Cells(erow, 2).Value = Sheets("Lap Time").Cells(erow, 2).Value - 1

End If
Next i

'Berekend de Topsnelheid
MaxSpeed = WorksheetFunction.Max(Range("D2:" & "D" & CStr(lastrow)))
Set BestSpeed = Sheets("RpmAchteras").Range("D2:" & "D" & CStr(lastrow)).Find(what:=MaxSpeed)
Set LapMaxSpeed = BestSpeed.Offset(0, -2)
valMaxSpeed = LapMaxSpeed.Value - 1 'Calculate Lap of TopSpeed

'Bereken de rondetijden
'Rondetijden in het formaat mm:ss,tienden & hondersten sec (86400000msec in 24uur)
s = 3 'Start Warm up ronde
lastrow = Sheets("Lap Time").Cells(Rows.Count, 1).End(xlUp).Row
For r = lastrow To s Step -1
Sheets("Lap Time").Cells(r, 4).Value = (Cells(r, 1).Value - Cells(r - 1, 1).Value) / 86400000
Next r
'Juiste formaat instellen voor Lap Time
Range("D2:" & "D" & CStr(erow)).Select
Selection.NumberFormat = "mm:ss.00"

'Kleur de achtergond van de tabel
Sheets("Lap Time").Range("A2:" & "E" & CStr(erow)).Interior.Color = RGB(192, 192, 192)

'Markeer kleur de Best Lap in geel
MinTime = WorksheetFunction.Min(Range("D3:" & "D" & CStr(erow)))
Set BestTime = Range("D3:" & "D" & CStr(erow)).Find(what:=MinTime)
BestTime.Offset(, -1).Interior.Color = RGB(255, 255, 0)

'Markeer de Topsnelheid
Set rngTopSpeed = Sheets("Lap Time").Range("B2:" & "B" & CStr(lastrow)).Find(what:=valMaxSpeed)
'rngTopSpeed.Offset(0, 3).Select 'HIER GAAT HET FOUT

'Set rngTopSpeed = Sheets("Lap Time").Range("B2:" & "B" & CStr(lastrow)).Find(what:=valMaxSpeed)
'Sheets("Lap Time").Range("F3").Value = rngTopSpeed.Offset(0, 3).Value
'Stel het getalformaat in
'rngTopSpeed.Offset(0, 3).Select
'With Selection
'.HorizontalAlignment = xlCenter
'.NumberFormat = "0.0"
'.Value = BestSpeed.Value
'End With

'Markeer MaxSpeed in het rood
'With Selection.Interior
'.Pattern = xlSolid
'.PatternColorIndex = xlAutomatic
'.Color = RGB(248, 78, 54)
' End With


Application.CutCopyMode = False
Sheets("Lap Time").Columns().AutoFit
Range("A1").Select 'Zet de cursor op een cel, hier B1
Application.ScreenUpdating = True 'ScreenUpdate terug inschakelen

End Sub

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Excel Vba code

Berichtdoor Gij Kieken » 28 Okt 2016, 18:38

Hallo Nico,heb al vele dingen geleerd van jouw.
Ik vind je taal technisch zeer sterk en wat me bij gebleven is ,is één van je uitspraken,
Als je het probleem kunt omschrijven is het soms al voor meer dan de helft opgelost.
Daar schort het natuurlijk een beetje bij mij.


Vanaf hier gaat het fout heb ik de regels code voorzien van Rem(apostrof),dit is omdat de daarop volgende fouten oorzaak zijn van de code ervoor.
Ik definieer een Range rngTopSpeed.Offset(0, 3).Select maar de offset lukt niet.
Doe ik dit in een aparte module lukt het wel.

Zo werkt het wel:
vb code
Private Sub imgBereken_Click()
'Kopieëert berekend en filtert de gegevens van Blad "RpmAchteras" en plakt deze in Blad "Lap Time"

Dim lastrow As Long, erow As Long 'erow empty row
Dim s As Integer 's Start lap
Dim MinTime As Date 'Belangrijk Dim As Date omdat we met tijd rekenen
Dim BestTime As Range
Application.ScreenUpdating = False 'ScreenUpdate uitschakelen

lastrow = Sheets("RpmAchteras").Cells(Rows.Count, 3).End(xlUp).Row
For i = 2 To lastrow
If IsNumeric(Sheets("RpmAchteras").Cells(i, 3)) _
And Sheets("RpmAchteras").Cells(i, 3) > 0 Then 'Test value is number and > zero

Sheets("RpmAchteras").Cells(i, 3).Copy
Sheets("Lap Time").Select
Sheets("Lap Time").Activate
erow = Sheets("Lap Time").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row 'Row1 are the headers
Sheets("RpmAchteras").Paste Destination:=Sheets("Lap Time").Cells(erow, 1) 'Lap Time

Sheets("RpmAchteras").Cells(i, 2).Copy
Sheets("RpmAchteras").Paste Destination:=Sheets("Lap Time").Cells(erow, 2) 'Lap Number
Sheets("Lap Time").Cells(erow, 2).Value = Sheets("Lap Time").Cells(erow, 2).Value - 1

End If
Next i

'Bereken de rondetijden
'Rondetijden in het formaat mm:ss,tienden & hondersten sec (86400000msec in 24uur)
s = 3 'Start Warm up ronde
lastrow = Sheets("Lap Time").Cells(Rows.Count, 1).End(xlUp).Row
For r = lastrow To s Step -1
Sheets("Lap Time").Cells(r, 4).Value = (Cells(r, 1).Value - Cells(r - 1, 1).Value) / 86400000
Next r
'Juiste formaat instellen voor Lap Time
Range("D2:" & "D" & CStr(erow)).Select
Selection.NumberFormat = "mm:ss.00"

'Kleur de achtergond van de tabel
Sheets("Lap Time").Range("A2:" & "E" & CStr(erow)).Interior.Color = RGB(192, 192, 192)

'Markeer kleur de Best Lap in geel
MinTime = WorksheetFunction.Min(Range("D3:" & "D" & CStr(erow)))
Set BestTime = Range("D3:" & "D" & CStr(erow)).Find(what:=MinTime)
BestTime.Offset(, -1).Interior.Color = RGB(255, 255, 0)

Application.CutCopyMode = False
Sheets("Lap Time").Columns().AutoFit
Range("A1").Select 'Zet de cursor op een cel, hier B1
Application.ScreenUpdating = True 'ScreenUpdate terug inschakelen

End Sub

Dit is de module dewelke ik insert om zo stapsgewijs de code op te bouwen

Sub MaximumSpeed()

Dim lastrow As Long
Dim MaxSpeed As Variant 'Dim as variant omdat het een decimaal is met een cijfer na de comma
Dim BestSpeed As Range
Dim LapMaxSpeed As Range
Dim valMaxSpeed As Integer 'Need to calculate LapMaxSpeed (value-1) because of warmup round
Dim rngTopSpeed As Range 'To find out the Lap of TopSpeed

Worksheets("RpmAchteras").Select
Worksheets("RpmAchteras").Activate

lastrow = Sheets("RpmAchteras").Cells(Rows.Count, 4).End(xlUp).Row

MaxSpeed = WorksheetFunction.Max(Range("D2:" & "D" & CStr(lastrow)))
Set BestSpeed = Range("D2:" & "D" & CStr(lastrow)).Find(what:=MaxSpeed)
Set LapMaxSpeed = BestSpeed.Offset(0, -2)
valMaxSpeed = LapMaxSpeed.Value - 1 'Calculate Lap of TopSpeed

Worksheets("Lap Time").Select
Worksheets("Lap Time").Activate
lastrow = Sheets("Lap Time").Cells(Rows.Count, 1).End(xlUp).Row
Set rngTopSpeed = Range("B2:" & "B" & CStr(lastrow)).Find(what:=valMaxSpeed)

'Stel het getalformaat in
rngTopSpeed.Offset(0, 3).Select
With Selection
.HorizontalAlignment = xlCenter
.NumberFormat = "0.0"
.Value = BestSpeed.Value
End With

'Markeer MaxSpeed in het paars
With Selection.Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = RGB(248, 78, 54)
End With

Range("A1").Select
End Sub


Er is natuurlijk nog een stuk code om de Usb trafiek te verwerken,maar dit is hier allicht niet relevant.

@edit: voor de leesbaarheid ff alles netjes uitgelijnd

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Excel Vba code

Berichtdoor nicoverduin » 28 Okt 2016, 20:26

Omdat beide subroutines met dezelfde variabelen werken kun je die dan niet beter in Algemeen/declaraties doen? Mogelijk kloppen de settings niet meer omdat je mogelijk in 'ImgBereken()' iets doet en in 'MaximumSpeed()' er mogelijk vanuit gaat dat ze gevuld zijn.
Dus ik zou in eerste instantie van beide subroutines de variabelen verplaatsen naar Algemeen/declaraties en ze OOK verwijderen uit beide subroutines. Anders zou je dezelfde problemen krijgen die je in C/C++ ook krijgt tussen globale en lokale variabelen.
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Excel Vba code

Berichtdoor Gij Kieken » 28 Okt 2016, 20:30

Daar heb ik uiteraard al mee geëxperimenteert maar het lukte niet best.

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Excel Vba code

Berichtdoor nicoverduin » 28 Okt 2016, 20:32

Gij Kieken schreef:Daar heb ik uiteraard al mee geëxperimenteert maar het lukte niet best.
Vaker kun je het niet specificeren? Hier kan ik niet zoveel mee. Krijg je fouten? welke? Werkt het wel maar klopt de offset niet?
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Excel Vba code

Berichtdoor Gij Kieken » 28 Okt 2016, 20:34

De laatst geposte code dus met nog een aparte module werkt
De fout ga ik nog eens simuleren om het juist te omschrijven

fout 91 tijdens uitvoering
Objectvariable of blokvariable With niet ingesteld

Ik kan ook de ganse file doorsturen,maar dat zal op zich niet werken omdat
-de directory's en de paden voor verwijzing naar figuren niet zullen kloppen(die moet je dus aanpassen naar jouw systeem
-het is een file met ingeschakelde macros en dat kan ook ambetant zijn voor virus scanners enzo

Zal inderdaad nog eens een ander aanpassen zodat de variabelen Public worden

Gebruikers-avatar
Berichten: 5043
Geregistreerd: 13 Mei 2013, 20:57
Woonplaats: Heemskerk

Re: Excel Vba code

Berichtdoor nicoverduin » 28 Okt 2016, 21:19

Dit doe je in de niet werkende oplossing niet en die losse subs wel
cpp code
Worksheets("Lap Time").Select
Worksheets("Lap Time").Activate

Dus is je range vermoedelijk leeg omdat hij het gebied niet heeft kunnen selecteren.... denk ik.....
Docent HBO Technische Informatica, Embedded ontwikkelaar & elektronicus
http://www.verelec.nl

Gebruikers-avatar
Berichten: 631
Geregistreerd: 15 Nov 2015, 11:54

Re: Excel Vba code

Berichtdoor Gij Kieken » 28 Okt 2016, 21:21

Heb dat ook geprobeerd om zo stapsgewijs te debuggen en proberen wat er fout gaat (met F8)

Zal proberen een paar screenshots te maken om te verduidelijken wat eigenlijk de bedoeling is van de code

Volgende

Terug naar Overige Software

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten