Ga naar inhoud

alpha

Lid
  • Items

    1.125
  • Registratiedatum

  • Laatst bezocht

Alles dat geplaatst werd door alpha

  1. alpha

    aantal.als

    Aha, je gebruikt liever meer dan 1 miljoen rijen in plaats van de 15 die je maar nodig hebt....
  2. Voer dat nu eens handmatig uit met de macrorecorder aan, zoals ik in mijn vorig bericht adviseerde, dan heb je meteen het antwoord.
  3. Ja, bij jou zal de naam van het blad niet Sheet1 zijn maar Blad1 . Opdracht om een cijfer in een cel te plaatsen (een getal meteen in een cel invoeren gaat overigens sneller); selecteer de gewenste cel en voer dan deze code uit. Sub Getal_invoeren() Dim Getal As Integer Getal = InputBox("Welk getal?") ActiveCell.Value = Getal End Sub Om van een willekeurig aantal cellen 1 cel te maken (dus niet alleen van a1, b1, a2, en b2), selecteer de gewenste cellen en voer dan deze code uit: Sub Cellen_samenvoegen() Selection.MergeCells = True End Sub Om een achtergrondkleur te geven aan 1 of meer cellen, selecteer eerst de betreffende cel(len) en voer dan deze code uit: Sub Achtergrondkleur() Dim Kleur As Integer Kleur = InputBox("Welke kleur?" & Chr(13) & "kies een getal van 1 t/m 56") Selection.Interior.ColorIndex = Kleur End Sub Om een vetgedrukte kader om een(groep) cel(len) te maken, selecteer de gewenste cellen en voer dan deze code uit: Sub Randen() Selection.BorderAround Weight:=xlThick End Sub Om een diagonaal te plaatsen in een cel, selecteer de gewenste cel(len) en voer dan deze code uit: Sub Diagonaal() Selection.Borders(xlDiagonalUp).Weight = xlThin End Sub Advies: als je nog weinig ervaring hebt met programmeren, gebruik dan de macro-recorder. Dan bereik je (weliswaar met veel uitgebreidere code, maar dat is nieterg) hetzelfde resultaat.
  4. @Pantex, en wat gebeurt er als je dit gebruikt: =A24&K6&H5 ?
  5. alpha

    aantal.als

    Als de gegevens staan in A1:C15: Combinatie van 1111 en wit (uikomst: 3) =AANTALLEN.ALS(A1:A15;11111;C1:C15;"wit") of =SOMPRODUCT((A1:A15=11111)*(C1:C15="wit")) In plaats van 11111 en "wit" kun je in de formules ook naar cellen verwijzen waarin die waarden staan: =AANTALLEN.ALS(A1:A15;A1;C1:C15;C1) en =SOMPRODUCT((A1:A15=A1)*(C1:C15=C1))
  6. In je eerste bericht zie ik wel een tekening en om een tekening te maken in Excel moet je niet kunnen programmeren. Dat is maar wat lijnen accentueren en cellen inkleuren. Alleen zie ik dat er diagonalen door de vierkanten lopen en dat er getallen staan in de driehoeken die door die diaginalen zijn ontstaan. Een cel met een diagonaal in twee driehoeken splitsen, dat gaat niet in Excel (voor zover ik weet). Verder hangt het er dan vanaf wat je met die figuur en getallen wil doen, daar heb ik geen idee van. Is het een spel?
  7. De reden dat ik dat vroeg is dat je een .xls-bestand plaatste, terwijl de 'normale' extensie voor een Excel 2013-bestand zonder macro's .xlsx is en voor een bestand mét macro's xlsm. Houd daar rekening mee. In de oplossing in de bijlage is er vanuit gegaan dat beide bladen er altijd hetzelfde uitzien. In het blad "rooster" moeten dus de 7 datums ( x 12) altijd staan in kolom C beginnend in C2, de namen in kolom F beginnend in F2, en de indeling per dag (5 ochtenden, 4 middagen, 3 nachten) moet ook steeds voor alle dagen hetzelfde zijn. Alleen dán werkt de oplossing goed. Klik op de knop in B3. PC-Helpf Adile.xlsm
  8. Met welke versie van Excel werk je?
  9. Dan druk je niet goed, je moet de linker-ALTtoets indrukken, die ingedrukt houden, en terwijl je die ingedrukt houdt 1 keer op de toets F11 drukken. Dan kom je in de VBA-editor. Je kunt er ook op een andere manier geraken, die manier is misschien voor jou wat makkelijker: als Excel is opgestart, klik dan onderaan in het venster met de rechtermuisknop op de naam van een werkblad (bv. Blad1) en klik dan met de linkermuisknop in het verschijnende menu op: Programmacode weergeven. Je komt dan in de VBA editor. De helpfile, waar je alle mogelijke VBA-opdrachten in terugvindt, kun je dan (dus als je in de VBA-editor bent) oproepen door ofwel 1 keer op de toets F1 te drukken, ofwel door rechtsboven in het menu te klikken op: Help --> Microsoft Visual Basic for Applications Help. In het venster dat dan verschijnt (en dat je best schermvullend kunt maken) zie je aan de linkerkant een menu. Met het goed doornemen van alle onderdelen daarvan kun je je makkelijk een jaar bezighouden. De tab Ontwikkelaars wordt in het menu standaard niet weergegeven. Om die te laten verschijnen, kies in Excel 2010: Bestand - Opties, klik in de linkerkolom op Lint aanpassen, vink in de rechterkolom aan: Ontwikkelaars, en klik op Ok. Als je daarna op die tab klikt, zie je in het lint een groep staan met de naam Programmacode.
  10. In Excel zou de procedure voor een oplossing als volgt kunnen verlopen: 1. De gebruiker een keuze laten maken tussen eerste en tweede deel van de maand en die keuze vastleggen om ze te kunnen gebruiken. 2. Keuze van de klantnaam waarvan men de gegevens wil en die keuze vastleggen, hiervoor moet een lijst met klanten beschikbaar zijn. 3. Van de gekozen periode (1e-/2e deel vd maand) kolom E doorlopen (met een for-nextlus bv.) en telkens als men de gekozen klantnaam tegenkomt de inhoud vd kolommen A t/m F kopiëren naar een afzonderlijk blad (moet aangemaakt worden) naar de eerstvolgende lege rij (moet berekend worden). Het is niet iets wat je in enkele minuten doet. Als je nog geen ervaring hebt met programmeren in Excel, dan moet je niet met zo'n klus beginnen, je loopt dan tegen teveel problemen tegelijkertijd aan.
  11. Het is afhankelijk van wat je wil maken. Als ik naar je voorbeeld kijk dan denk ik aan Excel, programmeren daarin kun je met Visual Basic for Applications (VBA). Met applications wordt bedoeld: de toepassingen van Microsoft, zoals Word, Excel, Access, Outlook, Powerpoint. Als Microsoft office op je computer staat, hoef je er niets extra's voor aan te schaffen, want VBA zit standaard al in die toepassingen. Start Excel maar eens op, toets: ALT-F11 en druk daarna op F1.
  12. Ja, maar als je geen andere vreemde dingen doet dan rijen en kolommen invoegen, kan het normaliter niet fout gaan.
  13. Rijen en/of kolommen selecteren moet/mag eigenlijk niet nodig zijn bij het gebruik van macro's. Wat je daarmee wil bereiken (het invoegen van rijen/kolommen neem ik aan), behoort dan in de macro('s) te zijn opgenomen. Maar als je die selectie wil handhaven, is het vermijden van een foutmelding dan enkel op te heffen met onderbreking van de macro. Zelfde soort oplossing dus dan in mijn vorig bericht. Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo einde If Not Intersect(Target, Range("e5:e437")) Is Nothing Then If Target.Value = 0 Then Target.Offset(, 1) = "" End If End If einde: End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim answ As String On Error GoTo einde If Not Intersect(Target, Range("f5:f437")) Is Nothing Then If Target.Offset(, -1).Value = 0 Then MsgBox ("Eerst kolom E invullen," & Chr(13) & _ "daarna pas kolom F !"), , "Let op !" Target.Offset(, -1).Activate End If End If einde: End Sub
  14. Gebruik dit: Private Sub Worksheet_Change(ByVal Target As Range) On Error GoTo einde If Not Intersect(Target, Range("e5:e437")) Is Nothing Then If Target.Value = 0 Then Target.Offset(, 1).ClearContents End If End If einde: End Sub Private Sub Worksheet_SelectionChange(ByVal Target As Range) Dim answ As String On Error GoTo einde If Not Intersect(Target, Range("f5:f437")) Is Nothing Then If Target.Offset(, -1).Value > 0 Then answ = MsgBox("Bent u op het in de kolommen C en D" & Chr(13) & _ "vermelde uur beschikbaar ?", vbYesNo) If answ = vbYes Then Target.Value = "Ja" Target.Offset(, -1).Activate Else Target.ClearContents Target.Offset(, -1).Activate GoTo einde End If Else MsgBox ("U moet eerst in kolom E een naam invoeren" & Chr(13) & _ "en pas daarna deze cel invullen !"), vbExclamation, "Let op !" Target.Offset(, -1).Activate End If End If einde: End Sub
  15. Omdat je op blad2 al een lijstje hebt, is het praktischer om in plaats van met 'ALS' met VERTICAAL ZOEKEN te werken; zie de bijlage. Maak op Blad1 in kolom B je keuze, dan worden de kolommen rechts daarvan automatisch ingevuld met de waarden die op blad2 staan. Die waarden op blad2 kun je naar eigen wens invullenb, dus ook aan elkaar gelijk maken als je dat wil. Het heeft geen zin om op blad2 in kolom A twee keer dezelfde waarde op te nemen. Je vraag was voor mij wat onduidelijk, dus ik weet niet of deze oplossing precies is wat je wenst. Indien niet, geef dan een voorbeeld van de invoer en de gewenste resultaten daarbij. bestektest.xls
  16. Die vraag begrijp ik niet, wat bedoel je precies ?
  17. Een oplossing niet met een draai- maar een gewone tabel, met een eenvoudig filter. Zie de bijlage. PS: Je kunt op het forum je probleem best in een Excelbestand weergeven; als je dat niet doet, dan moet je niet veel reacties verwachten. PC-Helpf Maximegoeminne.xlsm
  18. alpha

    Excel en vba

    Goed kijken ! Bucky heeft het bereik B3:D43 in het blad "Producten" de naam "Product" gegeven en die naam in de vert.zoekenfunctie gebruikt.
  19. Dat is een eenvoudige opgave, die opgelost kan worden met vertikaal zoeken. Van de eerste cel rechts naast datum 1 maak je een cel met gegevensvalidatie, met als validatiegevens (afgaande op je afbeelding): Blad2!A$3:A$9 . Dan kopieer je die cel naar beneden. In de eerste cel onder "FF Logement vergoeding" plaats je een vert.zoeken-functie, waarbij je zoekt in Blad2!A$3:C$9 als, afgaande op jouw afbeeldingen , de gegevens zich in dat bereik bevinden. Voor de vert.zoekenfunctie zoek je dan in kolom 2. Voor de dagelijkse vergoeding in kolom 3. Hiermee zou het je moeten lukken. PS: Voortaan op het forum geen afbeeldingen plaatsen, maar een Excelbestand, anders zul je weinig of geen reacties ontvangen.
  20. Én Toniolie, gelukt ?
  21. alpha

    ALS formule?

    Typ in B4 en B5 respectievelijk: =ALS(Blad1!C4=0;0;"hier je huidige formule inB4") =ALS(Blad1!C4=0;0;"hier je huidige formule inB5")
  22. Ja, dat kan. Stel, je hebt een bestand genaamd Artikelen.xlsx, waarin op Blad1 in A1:C1 resp. staan: Artikelnr. , Product, en Prijs. Beginnend in A2 staan in kolom A dan alle artikelnummers; Beginnend in B2 staan in kolom B dan alle bijbehorende productnamen; en beginnend in C2 staan in kolom C dan alle bijbehorende prijzen. In een ander bestand, bv. Offerte.xslx, wil je op een blad in kolom C, beginnend in C2, de artikelnummers invoeren. Je kunt dan in D2 en E2 de bijhorende productnaam en prijs opvragen zoals hieronder aangegeven. Hierbij is (als voorbeeld) ervan uitgegaan dat beide bestanden zich bevinden in de map: C:\Documents and Settings\Eigenaar\Mijn documenten\ . Dat pad moet je natuurlijk aan de bestandindeling op je eigen computer aanpassen, maak hierin geen fout ! Typ in C2: het artikelnummer waarvan je de gegevens wil opvragen. Typ in D2: =ALS.FOUT(VERT.ZOEKEN($C2;'C:\Documents and Settings\Eigenaar\Mijn documenten\[Artikelen.xlsx]Blad1'!$A$2:$C$1000;2;0);"") Typ in E2: =ALS.FOUT(VERT.ZOEKEN($C2;'C:\Documents and Settings\Eigenaar\Mijn documenten\[Artikelen.xlsx]Blad1'!$A$2:$C$1000;3;0);"") De formules in D2 en E2 kun je met de vulgreep naar beneden kopiëren.
  23. De 'knoppen' die je zoekt, staan in de groep Besturingselementen, die in het menu bij het item Ontwikkelaars behoort. Onwikkelaars wordt standaard niet in het menu weergegeven. Voor weergave, kies in het menu: Bestand - Opties - Lint aanpassen, vink in de rechterkolom aan: Ontwikkelaars, en klik op Ok. Onder zo'n knop kun je dan een macro vastleggen om een bepaald blad te selecteren, bv: Sheets("Reden Taxi"). Activate In je code gebruik je bv. "Blad2" en "Blad3" en "reden", terwijl de namen van die bladen "Taxibon", "Oproeping", en "Reden taxi" zijn. Als je namen van bladen wijzigt, dan moet je die ook in de code wijzigen, de code past zich nooit automatisch aan wijzigingen aan. Om de gegevens die je in "Taxibon" en "Oproeping" invoert tegelijk met de invoer in andere bladen te laten opnemen, is niet aan te raden; dat vertraagt de werking van je bestand enorm. Beter is om "Taxibon" en "Oproeping" eerst helemaal in te vullen en daarna met een opdrachtknop op die bladen de inhoud naar het andere blad te kopiëren. Dat kopiëren is eenvoudig, bv: Sheets("Reden Taxi").Range("A3").value = Sheets("Taxibon").Range("G1").value Sheets("Reden Taxi").Range("B3").Value = Sheets("Taxibon").Range("F7").Value enz. De code is korter te maken door With...End With te gebruiken, en om de inhoud van 8 cellen te kopiëren kan ook een For-Nextlus worden gebruikt, maar om het eenvoudig te houden, doe ik dat nu niet.
  24. Dank voor de melding. Fijn dat je er wat aan hebt gehad.
  25. Ervan uitgaande dat er alleen horizontale pagina-einden zijn, kun je onderstaande macro gebruiken. Het aantal rijen moet je niet instellen en dat aantal rijen hoeft per pagina ook niet even groot te zijn. Sub macro1() Dim pb As HPageBreak, pnr As Integer On Error GoTo einde pnr = 1 For Each pb In ActiveSheet.HPageBreaks If pb.Location.Row > ActiveCell.Row Then Exit For End If pnr = pnr + 1 Next pb ActiveSheet.PrintOut From:=pnr, To:=pnr einde: End Sub
×
×
  • 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.