bakerman
-
Items
378 -
Registratiedatum
-
Laatst bezocht
Inhoudstype
Profielen
Forums
Store
Berichten die geplaatst zijn door bakerman
-
-
Graag gedaan en bedankt voor de feedback.
Sccs verder met je project. ☺️
-
Voor de unieke lijst. Opgelet CSE-formule (bevestigen met Ctrl-Shift-Enter)
=ALS.FOUT(INDEX($D$2:$D$20;VERGELIJKEN(0;AANTAL.ALS($F$4:F4;$D$2:$D$20);0));"")
Voor de aantallen.
=ALS.FOUT(SOMPRODUCT(($A$2:$A$20=$G$1)*((RECHTS($B$2:$B$20;4)*1)=$G$2)*($D$2:$D$20=$F5)*$C$2:$C$20);"")
-
Als beide routines in dezelfde module staan zet je de variabelen helemaal bovenaan de module en ken je de waarden toe wanneer je een bepaalde routine draait.
Daarna kan je ze gebruiken in een andere routine. Draai eerst maar eens Test1 en daarna Test2
Dim fNaam As String 'AX' Dim fStraat As String 'AY' Dim fPlaats As String 'AZ' Sub test1() fNaam = "Cor Assa" 'AX' fStraat = "Weetiknietstraat 1" 'AY' fPlaats = "1234 AB Watisdeoplossing" 'AZ' End Sub Sub test2() MsgBox fNaam & Chr(10) & fStraat & Chr(10) & fPlaats End Sub
-
Wil je het eens proberen.
=SOM.ALS(INDIRECT("'"&$D$1&$D$2&"\["&$D$3&"]"&$D$4&"'!$A$2:$a$2000");$A2;INDIRECT("'"& $D$1&$D$2&"\["&$D$3&"]"&$D$4&"'!$b$2:$b$2000"))
-
Wat jij wil bereiken is mogelijk door gebruik te maken van de functie Indirect.
Het nadeel is echter dat het bronbestand geopend moet zijn anders krijg je een foutmelding.
In de morefunc addin zit een versie van Indirect die werkt met gesloten bestanden maar de addin werkt dan weer niet op 64-bit systemen.
-
Graag gedaan. 😁
kw, denk dat hij nu wel echt dicht mag.
-
Bij verdere tests toch nog een foutje gespot.
Zoals je kan zien in regel 14 treed er een fout op als er slechts 1 doos in voorraad is.
Had nu wat meer tijd dus in groene vak andere formules die (denk ik nu) alle situatie(s) wel aankunnen.
In het rode vak 2 manieren om dan de minimum voorraad te berekenen.
De formules in het groene vak kan je eender waar op je werkblad zetten (de kolommen zelfs verbergen indien gewenst. De formule in het rode vak zet je dan in kolom Q.
Bekijk het eens en zie of dit zou werken voor jouw situatie.
-
Deze brengt ons alweer iets verder.
Formules in alle cellen zonder getal.
-
14 uren geleden, Marinus_Henk zei:
De formule van Bakerman is niet wat ik zoek.
Herinner je je deze uitspraak nog ? Wel, het is wel juist die formule die het juiste resultaat geeft. 😲
=MIN(ALS(B6+J6 <> 0;B6+J6;10^10);ALS(C6+K6 <> 0;C6+K6;10^10);ALS(D6+L6 <> 0;D6+L6;10^10);ALS(E6+M6 <> 0;E6+M6;10^10);ALS(F6+N6 <> 0;F6+N6;10^10);ALS(G6+O6 <> 0;G6+O6;10^10);ALS(H6+P6 <> 0;H6+P6;10^10))
-
Nu zal je toch eens heeeeeeeeel gedetailleerd moeten uitleggen waarom het 40 en 89 zou moeten zijn want ik ben nu compleet het noorden kwijt.
Ik heb er echt geen idee meer van hoe de berekening volgens jou moet gebeuren.
Met mijn vorige formule (volgens jou onjuist) kom ik uit op 123 wat jouw resultaat nog het dichtst benadert.
-
@ emiel
Kijk je formule eens goed na want er staan foutieve verwijzingen in.
-
16 uren geleden, emielDS zei:
Ik dacht dat het de kleinste van de het tweede magazijn moest zijn plus de overeenkomstige van het eerste magazijn.
Ik heb het ganse topic nog eens 2x helemaal doorgelezen en dit heb ik nog in geen enkel antwoord van TS zien staan .
9 uren geleden, Marinus_Henk zei:Doos 1 van mag.1 moet bij doos 1 van mag.2 worden opgeteld. Dit geldt ook voor doos 2 van mag.1 en doos 2 van mag.2. enz..... Als deze bij elkaar zijn opgeteld dan moet ik de laagste waarde hebben.
Als ik dit lees begrijp ik daaruit dat alle overeenkomstige dozen bij elkaar moeten opgeteld worden en dat dan van al deze sommen de laagste moet weergegeven worden in kolom Q.
Als dit niet het geval is waarom geeft mijn formule dan exact de gevraagde resultaten ?
Alternatieve formule.
=ALS(MIN(J3:P3)> 0;MIN(J3:P3) +INDEX(B3:P3;VERGELIJKEN(MIN(J3:P3);J3:P3;0));"")
-
Om eerlijk te zijn Emiel weet ik het zelf ook niet zeker. Dit is enkel mijn interpretatie van de vraag.
-
Belangrijk is dat je lege cellen ook daadwerkelijk leeg zijn. Dus ook geen spaties of wat dan ook.
Ik heb gewoon al de lege cellen geselecteerd en op Delete gedrukt en plotseling verschenen alle juiste resultaten.
-
Formule in Q3 en doortrekken naar beneden.
=MIN(ALS(B3+J3 <> 0;B3+J3;10^10);ALS(C3+K3 <> 0;C3+K3;10^10);ALS(D3+L3 <> 0;D3+L3;10^10);ALS(E3+M3 <> 0;E3+M3;10^10);ALS(F3+N3 <> 0;F3+N3;10^10);ALS(G3+O3 <> 0;G3+O3;10^10);ALS(H3+P3 <> 0;H3+P3;10^10))
-
Nog een beetje verder aangepast zodat je
1) De lijst op Blad1 onbeperkt kan uitbreiden.
2) Op Blad2 een onbeperkt aantal bussen kan toevoegen. (mits respecteren van de huidige opzet.
3) Op Blad2 het aantal stoelen per bus onbeperkt kan vermeerderen.
Private Sub Worksheet_Activate() Application.ScreenUpdating = False With Blad2 For i = 3 To .Cells(3, .Columns.Count).End(xlToLeft).Column Step 3 .Cells(3, i).CurrentRegion.Offset(, 1).ClearContents Next End With For Each Cell In Blad1.Range("E4", Blad1.Range("E" & Rows.Count).End(xlUp)) x = Cell.Value: nr = Cell.Offset(, 1).Value With Blad2 Set y = .Rows(3).Find("bus " & x) If Not y Is Nothing Then Set Z = y.Resize(y.CurrentRegion.Rows.Count).Find(nr) If Not Z Is Nothing Then Z.Offset(, 1) = Cell.Offset(, -3).Value & " " & Cell.Offset(, -2).Value End If End If End With Next Application.ScreenUpdating = True End Sub
-
Zet deze in de bladmodule van Blad2.
Private Sub Worksheet_Activate() Application.ScreenUpdating = False With Blad2 For i = 3 To .Cells(3, .Columns.Count).End(xlToLeft).Column Step 3 .Cells(3, i).CurrentRegion.Offset(, 1).ClearContents Next End With For Each Cell In Blad1.Range("E4", Blad1.Range("E" & Rows.Count).End(xlUp)) x = Cell.Value: nr = Cell.Offset(, 1).Value With Blad2 Set y = .Rows(3).Find("bus " & x) If Not y Is Nothing Then Set Z = y.Resize(16).Find(nr) If Not Z Is Nothing Then Z.Offset(, 1) = Cell.Offset(, -3).Value & " " & Cell.Offset(, -2).Value End If End If End With Next Application.ScreenUpdating = True End Sub
-
Denk dat je met deze wel verder kan.
-
Deze werkt perfect voor mij.
PS: Code staat nu in een Standaard module ipv in ThisWorkbook.
-
Op 6/1/2020 om 00:40, Rob7 zei:
Ik heb nog een ( hopelijk laatste ) vraag :
Ik vraag me af of wat ik tracht te bereiken niet nog sneller kan door niet twee foto's te vergelijken , maar wel de naam van de foto ( ik wist tot voor kort niet dat afbeeldingen een naam hadden ) te controleren . Ik dacht aan de volgende macro . Die geeft geen compileer- of run-time fouten , maar hij doet ook niet wat ik ( niet ) vraag .
Sub Nummers_afbeeldingen_controleren()
With ActiveSheet
If [A1].Value = ("Afbeelding 18") Then
.[B1].Value = 1
End If
End With
End SubEr is nog iets mis met de ("Afbeelding 18") . Omdat het geen Value is ?
Het stadium van de Alternatieve tekst zijn we al voorbij Emiel, dit was al een antwoord op de volgende bovenstaande vraag.
-
Sub Bakerman() With ActiveSheet For Each oShape In .Shapes If (oShape.TopLeftCell.Address = "$A$1") * (oShape.Name = "Afbeelding 18") Then .Range("B1") = 1 End If Next oShape End With End Sub
Nu komt er een 1 in B1 als aan de voorwaarden die jij gesteld hebt voldaan wordt. Als dit niet is wat je bedoelt dan begrijp ik je vraag helaas niet.
-
Zonder afwijking.
Private Sub Cmd_00_Click() PI = 4 * Atn(1) T_03 = PI / 40 * (CDbl(T_00) ^ 2 - CDbl(T_01) ^ 2) / CDbl(T_02) End Sub
-
Een 6-tal maanden geleden is er in een ander forum een gelijkaardige vraag gepasserd en daarvoor had ik toen onderstaand bestand gemaakt.
In de cellen I3 en J3 vul je de binnendiameter (in cm) end de materiaaldikte (in mm) in en dan ga je in kolom B op zoek naar de overeenkomende buitendiameter. Kolom D geeft je dan het aantal meter op de rol.
@ dotchiejack
Waarom eerst de waarden naar het werkblad schrijven en de uitkomst terug inlezen in de Textbox als de berekening in de code zelf kan gebeuren.
-
With ActiveSheet For Each oShape In .Shapes If (oShape.TopLeftCell.Address = "$A$1") * (oShape.Name = "Afbeelding 18") Then MsgBox "Succes" End If Next oShape End With
laatste 'niet lege' cel in kolom vinden
in Archief Excel
Geplaatst:
Probeer het eens met deze.
=INDEX(G:K;COUNTA(G:G);5)