Het tekstvak staat niet in C3, het zweeft in je werkboek. Is dat tekstvak nodig? Want je kan dmv de uitlijning '123456' ook in het midden zetten.quote:Op vrijdag 25 september 2015 19:08 schreef speedfast het volgende:
Waarschijnlijk is dit een hele domme vraag maar ik kom er na een lange tijd hersenkraken en proberen nog steeds niet achter hoe ik dit oplos:
[ afbeelding ]
Ik heb een tekstvak ingevoegd waarvan ik de input wil betrekken in een formule, namelijk met tekstvak + C4 moet worden weergegeven in het vak eronder. Nu is het probleem dat ik het tekstvak op geen enkele manier kan koppelen aan cel C3, waardoor simpelweg =C3+C4 niet werkt. Iemand enig idee hoe ik dit kan oplossen?
Het klopt inderdaad dat hij 'zweeft'. Ik snap ook niet hoe ik er dan naartoe kan verwijzen.quote:Op vrijdag 25 september 2015 19:18 schreef qu63 het volgende:
[..]
Het tekstvak staat niet in C3, het zweeft in je werkboek. Is dat tekstvak nodig? Want je kan dmv de uitlijning '123456' ook in het midden zetten.
Ik zie niet echt een andere oplossing dan met VBA.quote:Op vrijdag 25 september 2015 19:25 schreef speedfast het volgende:
inderdaad dat hij 'zweeft'. Ik snap ook niet hoe ik er dan naartoe kan verwijzen.
Het tekstvak is noodzakelijk inde
1 2 3 4 5 | Sub Textboxadder() Cells(5, 3).Value = Worksheets("Sheet1").Shapes("TextBox 1").TextFrame.Characters.Text + Cells(4, 3) End Sub |
Afrondingsfouten ontstaan door de omzetting van decimale naar binaire getallen.quote:Op zaterdag 26 september 2015 19:20 schreef Holy_Goat het volgende:
Probleem.
------------
Waarom is =(4,6-3,5-1,1)
Niet hetzelfde als =4,6-3,5-1,1 ???
De ene geeft 0, de andere -4,44089209850063E-16
Een =0 test werd namelijk FALSE bij die som.
1 2 3 4 5 6 | A B C Ja 24 2 Nee 24 3 Ja 24 3 Nee 46 1 Nee 27 3 |
Dat is helaas geen optie, het moet echt zonder draaitabel. Thanks voor het meedenken wel!quote:Op maandag 28 september 2015 21:03 schreef sylvesterrr het volgende:
Mag ik valsspelen? Voeg een draaitabel toe. Filter in die draaitabel kolom A op 'Ja', voeg kolom B toe als rij en voeg kolom C toe als waarden (som).
Dan zou je middels VBA een ontdubbelde versie van kolom B kunnen maken (bijv. kopieer kolom B naar een apart werkblad, gebruik de ontdubbel-functie van Excel) en voeg een SUMIFS-formule toe aan iedere rij.quote:Op maandag 28 september 2015 21:29 schreef znarch het volgende:
[..]
Dat is helaas geen optie, het moet echt zonder draaitabel. Thanks voor het meedenken wel!
Ik heb het even bekeken. Dat is juist het probleem. Het feit dat B meerdere malen erin voorkomt hoort zo en moet zo blijven.quote:Op maandag 28 september 2015 21:38 schreef sylvesterrr het volgende:
[..]
Dan zou je middels VBA een ontdubbelde versie van kolom B kunnen maken (bijv. kopieer kolom B naar een apart werkblad, gebruik de ontdubbel-functie van Excel) en voeg een SUMIFS-formule toe aan iedere rij.
Dus kolom A-B samen is niet uniek? Begrijp ik dat goed? Dan kan je hetzelfde doen als ik net voorstelde, maar dan met twee kolommen... Je kan namelijk ook twee kolommen ontdubbelen.quote:Op maandag 28 september 2015 22:00 schreef znarch het volgende:
[..]
Ik heb het even bekeken. Dat is juist het probleem. Het feit dat B meerdere malen erin voorkomt hoort zo en moet zo blijven.
Ik kan niet zomaar dingen gaan verwijderen omdat de waardes achter B in C van belang zijn.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | -1,000000000000000000000000000000 -1,000000000000000000000000000000 -0,950000000000000000000000000000 -0,949999988079071000000000000000 -0,900000000000000000000000000000 -0,899999976158142000000000000000 -0,850000000000000000000000000000 -0,849999964237213000000000000000 -0,800000000000000000000000000000 -0,799999952316284000000000000000 -0,750000000000000000000000000000 -0,749999940395355000000000000000 -0,700000000000000000000000000000 -0,699999928474426000000000000000 -0,650000000000000000000000000000 -0,649999916553497000000000000000 -0,600000000000000000000000000000 -0,599999904632568000000000000000 -0,550000000000000000000000000000 -0,549999892711639000000000000000 -0,500000000000000000000000000000 -0,499999880790710000000000000000 -0,450000000000000000000000000000 -0,449999868869781000000000000000 -0,400000000000000000000000000000 -0,399999856948853000000000000000 -0,350000000000000000000000000000 -0,349999845027924000000000000000 -0,300000000000000000000000000000 -0,299999833106995000000000000000 -0,250000000000000000000000000000 -0,249999836087227000000000000000 -0,200000000000000000000000000000 -0,199999839067459000000000000000 -0,150000000000000000000000000000 -0,149999842047691000000000000000 -0,099999999999999700000000000000 -0,099999845027923600000000000000 -0,049999999999999700000000000000 -0,049999844282865500000000000000 0,000000000000000319189119579733 0,000000155717131633537000000000 0,050000000000000300000000000000 0,050000157207250600000000000000 0,100000000000000000000000000000 0,100000157952309000000000000000 0,150000000000000000000000000000 0,150000154972076000000000000000 0,200000000000000000000000000000 0,200000151991844000000000000000 0,250000000000000000000000000000 0,250000149011612000000000000000 0,300000000000000000000000000000 0,300000160932541000000000000000 0,350000000000000000000000000000 0,350000172853470000000000000000 0,400000000000000000000000000000 0,400000184774399000000000000000 0,450000000000000000000000000000 0,450000196695328000000000000000 0,500000000000000000000000000000 0,500000178813934000000000000000 0,550000000000000000000000000000 0,550000190734863000000000000000 0,600000000000000000000000000000 0,600000202655792000000000000000 0,650000000000000000000000000000 0,650000214576721000000000000000 0,700000000000001000000000000000 0,700000226497650000000000000000 0,750000000000001000000000000000 0,750000238418579000000000000000 0,800000000000001000000000000000 0,800000250339508000000000000000 0,850000000000001000000000000000 0,850000262260437000000000000000 0,900000000000001000000000000000 0,900000274181365000000000000000 0,950000000000001000000000000000 0,950000286102294000000000000000 1,000000000000000000000000000000 1,000000238418570000000000000000 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | -1,000000000000000000000000000000 -1,000000000000000000000000000000 -0,900000000000000000000000000000 -0,899999976158142000000000000000 -0,800000000000000000000000000000 -0,799999952316284000000000000000 -0,700000000000000000000000000000 -0,699999928474426000000000000000 -0,600000000000000000000000000000 -0,599999904632568000000000000000 -0,500000000000000000000000000000 -0,499999910593033000000000000000 -0,400000000000000000000000000000 -0,399999916553497000000000000000 -0,300000000000000000000000000000 -0,299999922513962000000000000000 -0,200000000000000000000000000000 -0,199999928474426000000000000000 -0,100000000000000000000000000000 -0,099999926984310200000000000000 -0,000000000000000138777878078145 0,000000073015691270939000000000 0,099999999999999900000000000000 0,100000075995922000000000000000 0,200000000000000000000000000000 0,200000077486038000000000000000 0,300000000000000000000000000000 0,300000071525574000000000000000 0,400000000000000000000000000000 0,400000065565109000000000000000 0,500000000000000000000000000000 0,500000059604644000000000000000 0,600000000000000000000000000000 0,600000083446502000000000000000 0,700000000000000000000000000000 0,700000107288360000000000000000 0,800000000000000000000000000000 0,800000131130218000000000000000 0,900000000000000000000000000000 0,900000154972076000000000000000 1,000000000000000000000000000000 1,000000119209280000000000000000 1,100000000000000000000000000000 1,100000143051140000000000000000 1,200000000000000000000000000000 1,200000166893000000000000000000 1,300000000000000000000000000000 1,300000190734860000000000000000 1,400000000000000000000000000000 1,400000214576720000000000000000 1,500000000000000000000000000000 1,500000238418570000000000000000 1,600000000000000000000000000000 1,600000262260430000000000000000 1,700000000000000000000000000000 1,700000286102290000000000000000 1,800000000000000000000000000000 1,800000309944150000000000000000 1,900000000000000000000000000000 1,900000333786010000000000000000 2,000000000000000000000000000000 2,000000238418570000000000000000 2,100000000000000000000000000000 2,100000143051140000000000000000 2,200000000000000000000000000000 2,200000047683710000000000000000 2,300000000000000000000000000000 2,299999952316280000000000000000 2,400000000000000000000000000000 2,399999856948850000000000000000 2,500000000000000000000000000000 2,499999761581420000000000000000 2,600000000000000000000000000000 2,599999666213980000000000000000 2,700000000000000000000000000000 2,699999570846550000000000000000 2,800000000000000000000000000000 2,799999475479120000000000000000 2,900000000000000000000000000000 2,899999380111690000000000000000 3,000000000000000000000000000000 2,999999284744260000000000000000 |
1 2 3 4 5 6 7 8 | Dim a As Double Dim TaSIdx As Double TaSIdx = -1 For a = 1 To 41 Range("A" & a).Value = TaSIdx TaSIdx = TaSIdx + 0.05 Next a |
Het zijn geen absolutes waardes die je op je scherm te zien krijgt, Excel kan tot 15 digits verwerken, als je er meer wil hebben dan gaat ie raar doen.quote:Op zondag 4 oktober 2015 16:28 schreef Modus het volgende:
In een stukje VBA had ik o.a. een tellertje, waar om 1 of andere reden niet uitkwam wat ik verwachtte. Tijdens uitzoeken kwam ik op een punt om de waardes maar eens uit te lezen, en dat verbaasde mij nog meer.
Gaat om beginwaarde -1 waar telkens of 0.1 of 0.05 bij opgeteld wordt. Als ik max. aantal cijfers achter de komma instel, krijg ik de volgende (deels gebroken??) getallen te zien. Weet iemand hoe dit komt?
Doubles resp. Singles met stappen van 0.05
[ code verwijderd ]
Doubles resp. Singles met stappen van 0.1
[ code verwijderd ]
Scriptje voor deze getallen is:
[ code verwijderd ]
Afronding. Excel werkt met binaire getallen, niet met decimale getallen. Dit is geen fout van Excel, dit is normaal.quote:Op zondag 4 oktober 2015 16:47 schreef Modus het volgende:
OK da's een detail, maar dat verklaart niet waarom -1 + 0,05 als antwoord -0,949999988079071 heeft en niet gewoon -0,95.
Al je getallen eerst met 100 vermenigvuldigen zal je probleem oplossen (die van het voorbeeld dan)quote:Op zondag 4 oktober 2015 19:05 schreef Modus het volgende:
de komma ook echt allemaal nullen. Het is niet alsof ik 1/3 doe en dat Excel dan standaard 0.3 in een cel zet maar op de
Tofquote:Op maandag 28 september 2015 19:45 schreef sylvesterrr het volgende:
Vanochtend gestoeid met Outlook Object Library in Excel. Ik was het zat om telkens alle vergaderruimten toe te voegen aan een uitnodiging om te zien of er een beschikbaar is (en welke).
[ afbeelding ]
Volgende stap is om dit te verplaatsen naar Outlook uiteraard. Een online versie zou nog beter zijn uiteraard.
Originele code zag er niet uit, dus dan maar even opnieuw gedaan. Zo is ie ook beter bruikbaar.quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | Private olApp As Object Private olNS As Object Public Type UserAvailability Username As String Email As String Availability As String Error As String 'Availability: one digit (0-4) per slot (default: 15 minutes) for the next 30 days '0 Free '1 Tentative '2 Busy '3 Out of Office '4 Working Elsewhere End Type Private Sub CreateOutlookObjects() If Not olApp Is Nothing Then Exit Sub End If On Error Resume Next Set olApp = GetObject(, "Outlook.Application") If Err.Number = 429 Then Set olApp = CreateObject("Outlook.Application") End If Set olNS = olApp.GetNamespace("MAPI") End Sub 'slotInterval: default 15 minutes Public Function GetAvailability(startDay As Date, rcpt As String, Optional slotInterval As Long = 15) As UserAvailability Dim olRecip As Object Dim cUser As Object Dim freeBusy As String Dim User As UserAvailability CreateOutlookObjects User.Username = rcpt Set olRecip = olApp.Session.CreateRecipient(User.Username) olRecip.Resolve If olRecip.resolved Then Set cUser = olRecip.AddressEntry.GetExchangeUser User.Email = cUser.PrimarySmtpAddress On Error GoTo ErrorHandlerFreeBusy User.Availability = cUser.GetFreeBusy(startDay, slotInterval, True) Else User.Error = "Not found" End If GetAvailability = User Set olRecip = Nothing Set cUser = Nothing Exit Function ErrorHandlerFreeBusy: If Err.Number = -2147352567 Or Err.Number = 440 Then 'not allowed User.Error = "Not allowed" Err.Clear Resume Next Else MsgBox (Err.Number & Err.Description) End If End Function |
1 2 3 | Public Sub test() MsgBox (OutlookAvailability.GetAvailability(Date, "NaamOfEmailadres").Availability) End Sub |
Dit ga je niet voorkomen, dit is gewoon hoe een computer werkt. Om een zo groot mogelijk getallenbereik te krijgen worden de waarden zoals wij ze kennen eigenlijk benaderd in een ander getallensysteem. De enige manier om dat te voorkomen is door zelf de definitie van de getallenrange in bytes te beïnvloedenquote:Op zondag 4 oktober 2015 19:05 schreef Modus het volgende:
Snap ik, zoiets zag ik inmiddels ook. Maar hoe zou ik dat dan kunnen voorkomen? Ik bedoel, die -1 en 0.1 die ik benoem zijn ook echt gewoon die getallen en hebben achter de komma ook echt allemaal nullen. Het is niet alsof ik 1/3 doe en dat Excel dan standaard 0.3 in een cel zet maar op de achtergrond wel degelijk met 0.3333333333333 werkt.
En als ik in mijn code 0.100000000000 typ pakt ie dat niet en verwijdert de VB editor automatisch die rits nullen weer.
quote:Sub PrintFile()
'
' PrintFile Macro
'
'
Sheets("Sheet1").Select
ActiveWindow.SelectedSheets.Visible = False
ActiveWorkbook.PrintOut Copies:=1, Collate:=True, IgnorePrintAreas:=False
Sheets("pvReport").Select
Sheets("Sheet1").Visible = True
End Sub
Een pdf writer wordt als printer gezien dus je stuurt een printopdracht. Maar ik heb standaard een andere printer ingesteld, dus als ik deze in een geautomatiseerd rideltje van macro's aan het eind van de rit als pdf wil laten printen moet ie wel de goede printer pakken.quote:Op donderdag 8 oktober 2015 10:51 schreef sylvesterrr het volgende:
Waarom niet gewoon opslaan als pdf?
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |