Ga naar inhoud

bakerman

Lid
  • Items

    381
  • Registratiedatum

  • Laatst bezocht

Alles dat geplaatst werd door bakerman

  1. Sub Kopieren_Dagen() ' ' Kopieren_Dagen ' ' Dim wkDay(1 To 5) As String Dim m As Integer, i As Integer, dt As Date dt = Now() m = Weekday(dt, vbMonday) - 1 For i = 1 To 5 wkDay(i) = Format(dt - m, "yyyy_dd_mm"): m = m - 1 Next i myarr = Array("", 1, 2, 3, 4) Blad1.Columns("F:G").EntireColumn.Hidden = True For i = 1 To 5 Blad1.Range("C2") = myarr(i - 1) ActiveWorkbook.SaveCopyAs "D:\" & wkDay(i) & ".xlsm" Next Blad1.Columns("F:G").EntireColumn.Hidden = False End Sub Gooi bovenstaande er eens tegen. Deze maakt de datums van de huidige week aan, van maandag tot vrijdag.
  2. bakerman

    Userform

    Het werkblad is volledig beveiligd. Enkel de cellen J4, J5 en de Combobox kunnen gewijzigd worden. Al de berekeningen gebeuren met formules en de kleurbalken en pijltje gebeurt met Voorwaardelijke Opmaak. Momenteel staat er geen wachtwoord op de beveiliging dus wil je extra zeker zijn kan je dit alsnog doen.
  3. bakerman

    Userform

    Had wat tijd over dus probeer deze eens. De berekening alsook de kleuren en pijltje gebeuren nu volledig zonder VBA. Het formulier stuurt de ingegeven waarden naar het werkblad en haalt de resultaten terug op v/h werkblad. Sary_Dynvisc_wb.xlsm
  4. Maak van namen een dynamisch bereik zodat je namen kan toevoegen of verwijderen zonder dat je steeds het bereik moet aanpassen in Namen Definiëren. test_atr.xlsx
  5. Met een streepje VBA is het mogelijk. Nadeel is dat je daadwerkelijk iets moet invullen in elke cel alvorens je kan verdergaan. Private Sub Worksheet_Change(ByVal Target As Range) Dim TabOrder As String TabOrder = "C2,E4,G2,C4,E2,C6" TabOrder = "," & Replace(Replace(TabOrder & "," & Split(TabOrder, ",")(0), "$", ""), " ", "") If InStr(TabOrder, "," & Target.Address(0, 0) & ",") Then Range(Split(Split(TabOrder, "," & Target.Address(0, 0) & ",")(1), ",")(0)).Select End If End Sub De volgorde kan je wijzigen in TabOrder. test volgorde niet beveiligde cellen.xlsm
  6. Zet volgende code in de codemodule van Blad1. Private Sub CmbATR_Change() With Range("Tabel1").ListObject Range("E7") = Application.Index(.DataBodyRange, _ Application.Match(CmbATR.Value, .DataBodyRange.Columns(2), 0), 3) End With End Sub
  7. Heb een eenvoudig opzetje gemaakt met wat ik denk dat je bedoelt. We zoeken steeds naar de waarde in de 1ste rij of 1ste kolom om het juiste adres te bepalen. Het geeft je in ieder geval de functies die je nodig hebt om jouw bestand aan te passen. Bekijk het eens en van daaruit kunnen we dan verder. Johanvd1993.xlsx
  8. De formule op het werkblad evalueert enkel 1 cel. Achter de schermen evalueert UitgebreidFilter de formule voor elke cel in kolom A (of een andere kolom naargelang de opstelling van de formule). Dus naargelang hoe de formule is opgesteld wordt er gefilterd op Waar of Onwaar. Op deze manier worden alle overeenkomende regels opgehaald en rechts in de resultaattabel geplaatst. Alles hangt dus af op welke manier je de formule neerpent.
  9. Deze formule is nodig om het UitgebreidFilter te laten werken. Je mag dit gerust uit het zicht verplaatsen of de Fontkleur op Wit zetten zodat het niet opvalt. Verplaats je het echter moet je dit wel nog even aanpassen bij Formules - Namen Beheren - Criteria.
  10. Met een extraatje. Het bovenste tabelletje geeft je het meest voorkomende getal per kolom met daaronder het aantal keer. Het onderste tabelletje geeft je de meest voorkomende cijfers uit het ganse bereik met hun aantal keer daaronder. AdvancedFilterIII.xlsm
  11. Bij data1 in Formules - Namen Beheren verwijder de -1. Dan is je probleem opgelost.
  12. Voor jou uiteraard hetzelfde toegewenst. Voor de sport een nog snellere methode dan mijn vorige code (2x sneller) AdvancedFilter.xlsm
  13. Optie 2 lijkt mij het veiligste. Let wel moest je mijn methode kiezen en je wil de bladnaam wijzigen dan moet je bij Formules - Namen Beheren deze wijziging ook 2x doen bij het benoemd bereik data
  14. Gegevens rij per rij inlezen vanuit het werkblad en verwerken is de slechtste en traagste methode in VBA. Zeker als de dataset 4K rijen, en groeiende is. Ik heb beide codes achter een verschillend werkblad gezet met een dataset van 5K rijen. typ in de gele cellen bv. 8 in en let op het tijdsverschil om +/- 350 resultaatrijen op te halen. d_ba.xlsm
  15. Geen loops nodig. voorbeeldbestand_wb.xlsm
  16. =INDEX(Sheet1!$F$1:$F$5;MATCH(1;($B2=Sheet1!$B$1:$B$5)*($C2=Sheet1!$C$1:$C$5);0)) Opgelet, array formule dus bevestigen met CONTROL-SHIFT-ENTER.
  17. Wat denk je van deze? zoeken verschillende parameters_wb.xlsx
  18. Het kan ook met een alternatieve formule. =$B$3 = ""
  19. Je hebt het forum nu al 2X bezocht nadat ik gepost heb. Is het dan echt zoveel gevraagd om even een berichtje, wat dan ook, achter te laten. Blijkbaar nog veel te leren over forumetiquette. Mijn interesse in jouw vraag is nu wel helemaal verdwenen. Suc6 nog met je project
  20. 112 keer bekeken en geen gegadigden, dan zal ik de debatten maar openen. Om te filteren terwijl je typt moet je gebruik maken van een Combobox maar 25000 (of meer) comboboxen op een werkblad lijkt me overkill. Dus met je gegevensvalidatie lijkt dit me het beste alternatief. Er is wel een stukje VBA voor nodig dus als dit een bezwaar is zit j in de problemen. Typ het woord (of een deel) dat je zoekt in een cel in kolom B en druk op Enter (of Tab). je Validatielijst is nu gefilterd. Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Columns(2)) Is Nothing Then If Target.Count > 1 Then Exit Sub If Target = vbNullString Then Exit Sub sn = Sheet2.Cells(1).CurrentRegion With CreateObject("Scripting.Dictionary") For j = 1 To UBound(sn) If sn(j, 1) Like "*" & Target.Value & "*" Then .Add sn(j, 1), "" Next Target.Validation.Delete Target.Validation.Add xlValidateList, , , Join(.keys, ",") Target.Validation.ShowError = False End With End If End Sub categorie selectie test.xlsm
  21. Mijns inziens maak jij een denkfout omdat je zoals jij het voorstelt nogmaals commissie gaat berekenen op reeds verrekende commissie. De commissie is geen kost als dusdanig (zoals bv. loonkost) maar een méérkost op de verkoopprijs. Wat jij volgens mij nodig hebt is een kolom waar je al je kosten in samentelt (Aankoop+Vaste kosten+verpakking+Verzending + Loonkost+Vooropgestelde winst) Daarop bereken je dan de BTW die je bij de som van je kosten telt zodat je de bruto verkoopprijs bekomt. Daarop ga je dan je commissie berekenen die je dan bij de bruto verkoopprijs telt om zo uiteindelijk bij je netto verkoopprijs te komen. Als je dan later de commissie aftrekt van het ontvangen bedrag is dit eigenlijk een nul-operatie. Ik zag ook in je tabel 2X kolommen waarin je commissie berekent?????
  22. Beste Magda, Mijn commentaar was allerminst naar jouw persoon gericht, maar eerder een beschouwing van hoe het mijns inziens opgelost zou moeten worden. Ben ook even aan de slag gegaan zoals je zal zien in de bijlage. Je tabblad Inkoop vul je zoals vanouds in. Omdat je data nu als tabel is opgemaakt worden bij elke nieuwe regel de validatie en formules automatisch meegenomen. Je zal merken dat elk inkooporder standaard op Openstaand staat. Van zodra je een betaaldatum invoert wordt de status automatisch naar Betaald gewijzigd. Wanneer je nu op tabblad Betalingen een nieuwe regel invoert wordt in Inkoop gezocht naar de gelijkaardige Omschrijving en indien gevonden wordt de betaaldatum ingevuld, wat weer tot gevolg heeft dat de status naar Betaald wordt gezet, net zoals je gevraagd hebt. Let er wel op dat je steeds de omschrijving invult alvorens het bedrag in te vullen.Op blad Lijsten staan alle lijsten voor de datavalidatie. De lijst openstaand genereert door de aanwezige formule elke Omschrijvingen die nog openstaand is. Deze lijst wordt op Betalingen in de kolom Omschrijving gebruikt zodat je steeds een selectie hebt van nog openstaande inkooporders. Op blad Betalingen staan nog enkele inkoopordes zonder bedrag om al eens te testen. Heb je nog vragen laat het dan maar weten. Magdalena.xlsm
  23. Dit stuur je toch niet aan vanuit werkblad inkopen maar vanuit werkblad betalingen. Een inkooporder dat niet onmiddellijk betaald wordt zet je standaard op Openstaand. Anders op betaald. Als je nu een betaling invoert ga je de omschrijving zoeken in Inkoop en past de status en datum aan. Je gaat toch niet eerst alle betalingen invoeren en daarna proberen te onthouden dewelke je hebt ingevoerd om Inkoop aan te passen. Stuur dit vanuit Betalingen zodat gegevens op Inkoop automatisch aangepast worden en niet andersom.
  24. Welke rest nog ??? E19 is toch ook ingevuld in het voorbeeldbestand. 😲
×
×
  • 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.