Ga naar inhoud

bakerman

Lid
  • Items

    378
  • Registratiedatum

  • Laatst bezocht

Alles dat geplaatst werd door bakerman

  1. Jan, kan je deze eens testen. jantjeschelling_Formules_V2.xlsx
  2. Tot hoeveel minuten denk je dan te gaan ? Of is dit onbeperkt ? Ben altijd vanuit de veronderstelling vertrokken dat je niet meer dan double digits minuten zou hebben.
  3. Dan is de enige oplossing die ik je kan aanreiken een extra tabel rechts waar ze de uren en minuten invullen met daarnaast de formules om de omzetting te doen. De cellen in je tabel links verwijzen dan naar de formulecellen. jantjeschelling_Formules.xlsx
  4. Laatste bereik aangepast en tijd voor een woordje uitleg. Eerst de drie bereiken geformatteerd als Tekst. Dan Event-code (WorkSheet_Change) en UDF (User Defined Function). Om deze te zien rechtsklik je op de BladTab en selecteer Programmacode weergeven. jantjeschelling.xlsm
  5. Wat denk je van deze. jantjeschelling.xlsm
  6. Eentje om te testen. jantjeschelling.xlsm
  7. Aangezien een reactie uitblijft ben ik er zelf maar al aan begonnen. Wijzig de directory waar de voorbeeldbestanden staan aan het begin van de code Let er ook op dat de kolomkoppen exact hetzelfde zijn als de veldnamen in kolom A van de voorbeeldbestanden. Sub ConsolidateAll() Dim rsCon As Object, rsData As Object, sFileName As String Dim Prov As String, ExProp As String, resarr ', wDir As String Const wDir = "D:\Test2\" Prov = IIf(Val(Application.Version) < 12, "Microsoft.Jet.OLEDB.4.0", "Microsoft.ACE.OLEDB.12.0") ExProp = IIf(Val(Application.Version) < 12, "8.0", "12.0") Application.ScreenUpdating = False sFileName = Dir(wDir & "*.xlsx") Sheets(1).Cells(1).CurrentRegion.Offset(1).ClearContents Do While sFileName <> "" If sFileName <> ThisWorkbook.Name Then Set rsCon = CreateObject("ADODB.Connection"): Set rsData = CreateObject("ADODB.Recordset") rsCon.Open "Provider=" & Prov & ";Data Source=" & wDir & sFileName & _ ";Extended Properties=""Excel " & ExProp & ";HDR=No"";" rsData.Open "SELECT * FROM [Blad1$A4:G17];", rsCon, 0, 1, 1 If Not rsData.EOF Then resarr = rsData.GetRows End If nRow = Sheets(1).Range("A" & rows.Count).End(xlUp).Offset(1).Row For x = 0 To UBound(resarr, 2) If resarr(0, x) <> vbNullString Then Sheets(1).Cells(nRow, Application.Match(resarr(0, x), rows(1), 0)) = resarr(6, x) End If Next rsData.Close rsData.Open "SELECT * FROM [Blad1$A24:F64];", rsCon, 0, 1, 1 If Not rsData.EOF Then resarr = rsData.GetRows End If For x = 0 To UBound(resarr, 2) If resarr(0, x) <> vbNullString And InStr(1, resarr(0, x), "Onderdeel") > 0 Then Sheets(1).Cells(nRow, Application.Match(resarr(0, x), rows(1), 0)) = resarr(5, x) End If Next End If sFileName = Dir: rsData.Close: Set rsData = Nothing: rsCon.Close: Set rsCon = Nothing Loop Application.ScreenUpdating = True End Sub ADOB_test.xlsm
  8. Plaats eens een voorbeeld van je general file hoe dit er uiteindelijk moet uit komen te zien.
  9. Aangezien ik niet over XL2013 beschik kan ik niet testen. Voor diegenen in dezelfde situatie heb ik volgend voorbeeldbestand gemaakt. Op tabblad Macro vul je de Landcode in en btw-nummer, klik op de knop. Bij een correct nummer krijg je Bevestiging, Naam en Adres in cellen C2 en D2. Op blad Functie krijg je enkel Bevestiging in cel C2. Vies_Soap_BTW.xlsm
  10. Zoals ik al eerder zei, als het gaat om Belgische Btw-nummers moet je A31 formatteren als Tekst om de voorloopnul weer te geven. BE0123456789
  11. Moeten beide argumenten gescheiden worden door een komma ? Probeer anders eens zonder =WEBSERVICE("http://ec.europa.eu/taxation_customs/vies/q=" & A30 & A31) Of anders de komma vervangen door puntkomma. =WEBSERVICE("http://ec.europa.eu/taxation_customs/vies/q=" & A30 & ";" & A31)
  12. Gaat het hier over Belgische of Nederlandse BTW-nrs ? Hoe zet je het BE-nummer in de cel MET voorloopnul ? Plaats eens een voorbeeldbestandje van je opzet. Welke informatie wil je ? Of slechts bevestiging van juistheid ?
  13. Daar ben ik het volledig mee oneens. 😯 De opzoeking via Excel kan perfect uitgevoerd worden via IE (met getelementbyid vul je de benodigde velden in) of via XML (SOAP) De vraag is enkel hoe je werkblad is ingedeeld en waar en hoe je het resultaat wil hebben.
  14. Voor de lol nog eentje. In P6 =ALS.FOUT(I6 * KIEZEN($E$6;0,15;0,2);0)
  15. bakerman

    Hyperlinks

    @ kw muchas gracias. Wil je de bestaande hyperlinks herstellen naar hun origineel voorkomen dan volstaat deze. Sub Format_Hyperlinks() For Each cl In Range(Range("M5"), Range("M" & Rows.Count).End(xlUp)) If cl.Hyperlinks.Count Then cl.Style = "Hyperlink" Next End Sub @ruud
  16. Deze houdt rekening met lege cellen. =SOMPRODUCT((lammering[Ooi]<>"")/AANTAL.ALS(lammering[Ooi];lammering[Ooi]&"")) Bekijk ook eens de resultaten in de cellen op rij 4 kolom D, F, H, J Arnaud_Bedrijfsregistratie_TESTEXEMPLAAR.xlsm
  17. Post eens een bestand waarin je deze fout krijgt.
  18. Aangezien er geen andere kandidaten zijn, deze lost je afbeeldingprobleem op. Sub SamenvoegenVerwijderen() Dim sn, myarr, i As Long, j As Long With Blad1 sn = .Cells(1).CurrentRegion End With With CreateObject("scripting.dictionary") For j = 2 To UBound(sn) If IsNumeric(sn(j, 1)) Then .Item(sn(j, 2)) = .Item(sn(j, 2)) + sn(j, 1) Else .Item(sn(j, 2)) = sn(j, 1) End If Next ReDim myarr(1 To .Count, 1 To 6) i = 1 For Each Key In .keys myarr(i, 1) = .Item(Key): myarr(i, 2) = Key For j = 3 To 6 myarr(i, j) = Application.Index(Blad1.Cells(1).CurrentRegion, Application.Match(Key, Blad1.Columns(2), 0), j) Next i = i + 1 Next End With Application.ScreenUpdating = False With Blad2 For Each shp In .Shapes shp.Delete Next .Cells(2, 1).Resize(UBound(myarr), 6) = myarr For i = 1 To UBound(myarr) Blad1.Cells(Application.Match(myarr(i, 2), Blad1.Columns(2), 0), 5).Copy .Cells(i + 1, 5) Next .Range("A:F").EntireColumn.AutoFit End With Application.Goto Blad2.Cells(1) Application.ScreenUpdating = True End Sub Voor je andere vraag, plaats een voorbeeldbestand van en naar. lv.xlsm
  19. Dit kan je oplossen met Voorwaardelijke Opmaak. In de veronderstelling dat geldigheid in kolom A staat en controle in kolom C. =EN(ISGETAL(C2);A2 = "eenmalig") Kies je kleur en het bereik waarvoor de regel geldt en klaar.
  20. Touw, Er zijn twee manieren om dit aan te pakken. 1) Amateuristisch zoals je nu bezig bent met een halve oplossing hier, een halve oplossing daar en jij probeert het dan allemaal samen te gooien. 2) Professioneel en daarvoor plaats je een voorbeeld van het werkelijke bestand waarmee je nu werkt (zonder gevoelige info) met een duidelijke omkadering van hoe jij het zou willen dat het werkt zodat er oplossingen op maat kunnen gegeven worden. Ik veronderstel dat je een tabblad hebt met alle klantgegevens. Dit kan je gebruiken om je klantgegevens op je factuur in te vullen dmv Vertikaal zoeken of Index/Vergelijken gebaseerd op het klantnummer. Idem dito voor de artikelen. Je filtert per klant alle benodigde artikels op de factuur en met dezelfde formule zoek je de bijhorende prijzen op. Net zoals het samenstellen van je picklists. Ga je per locatie alles gewoon maar bij elkaar gooien en moeten ze het op het verzamelpunt dan maar uitzoeken of ga je alles per locatie/per klant samen zetten en daarna op het verzamelpunt een lijst voorzien met per klant alle locaties waar deze artikels van hebben zodat je enkel maar naar de respectievelijke paletten (of wat dan ook) moet gaan en alles per klant van elke locatie ineens kan opladen en bij elkaar zetten voor de uiteindelijke volledige bestelling. Deze laatste lijkt mij de meest logische en snelste manier van werken.
  21. Hiervoor heeft XL AutoFilter en Uitgebreid Filter ontworpen. In bijgaand voorbeeld wordt gebruik gemaakt van Uitgebreid Filter. Sub Knop1_Klikken() Sheets("Blad2").Cells(1).CurrentRegion.Offset(1).ClearContents With Sheets("Blad1") .Cells(3, 1).CurrentRegion.AdvancedFilter 2, .Range("J1:J2"), Sheets("Blad2").Range("A1:D1") End With End Sub Voorbeeld factuur ba.xlsm
  22. Heb wat opzoekingswerk verricht en deze doet schijnbaar wat jij beoogt. Je moet nog wel Sheet1 vervangen door de werkelijke naam van je werkblad. function onOpen() { var ThisSheet = SpreadsheetApp.getActiveSpreadsheet(); var StartingTab = ThisSheet.getSheetByName("Sheet1"); // The default tab being opened var LastRow = ThisSheet.getLastRow() + 1; // One past the last row that has been entered in the spreadsheet var LastCellString = "A"+LastRow+":A"+LastRow; // The string representing the last cell to position to var LastCell = ThisSheet.getRange(LastCellString); // The internal variable of the last cell StartingTab.setActiveRange(LastCell) // Actually perform the repositioning to the last cell }
  23. In de kolom van de actieve cel ga je met CTRL+PijlNaarBeneden naar de laatstgevulde cel. Als dus alle rijen gevuld zijn vanaf Rij 1 is dit de cel boven de eerstvolgende nieuwe regel. In VBA zou dit makkelijk op te lossen zijn met Application.Goto en Workbook_Open, maar Google Spreadsheets gebruikt echter App Script.
×
×
  • Nieuwe aanmaken...

Belangrijke informatie

We hebben cookies geplaatst op je toestel om deze website voor jou beter te kunnen maken. Je kunt de cookie instellingen aanpassen, anders gaan we er van uit dat het goed is om verder te gaan.