» Off-"Flitsservice" » Techniek   



 Pagina 9 van 11  [ 517 berichten ]
DikkeDiesel
Master
 Bericht 
:thumb:

Dashcam Drenthe
Master
 Bericht 
Haai, ben ik weer :D :x :oops:

Ik wil graag als er een naam is ingevuld in bij 'naam aanvrager' dat er dan bij de status automatisch 'In behandeling' komt te staan. Staat er bij offerte 'in behandeling' moet er bij status 'offerte' automatisch komen te staan en bij offerte 'goedgekeurd' moet er automatisch 'bestelling' komen te staan bij de status

Na een tijdje knutselen en online zoeken kwam ik tot dit, wat uiteraard niet werkt :lol:

=OF(ALS(ISTEKST(D11);"in behandeling";" ");(ALS(K11="in behandeling";"offerte";"");ALS(K11="goedgekeurd";"bestelling";"")))

Volgens mij gebruik ik een verkeerde voorwaarde of formule, maar kan niet vinden wat wel zou moeten werken.

Dashcam Drenthe
Master
 Bericht 
Oh ik bedenk me net dat dit misschien met voorwaardelijke opmaak kan :[

Pietert
Master
 Bericht 
Niet OF gebruiken, maar je IFs nesten:
Code:
=IF(D5="S","Small",IF(D5="M","Medium","Large"))


Dashcam Drenthe
Master
 Bericht 
Zo bedoel je?

=Als(istekst(D11),"In behandeling", Als(K11="in behandeling", Als(K11="Goedgekeurd";"Bestelling")))

Dat kan toch niet? je bedoelt het vast niet zo :x

Pietert
Master
 Bericht 
Jawel, maar dan wel 2 cases per geneste als:
=Als(istekst(D11),"In behandeling", Als(K11="in behandeling", "Offerte", Als(K11="Goedgekeurd","Bestelling", "")))
En als je nu denkt: Jezus christus wat een debiele syntax!
Dat klopt. Nu snap je waarom ik altijd heel erg ver weg blijf van excel en vba.

En je moet of alles scheiden met , of alles met ;.. Welke van de 2 ligt een beetje aan je versie

Dashcam Drenthe
Master
 Bericht 
Maar je moet toch altijd een waarde geven wanneer het niet waar is?
EDIT: ik lees niet goed

Dashcam Drenthe
Master
 Bericht 
Hmm...hij doet het bijna goed. Echter blijft in D11 altijd de tekst staan. Nu gaat het alleen goed als ik in D11 de tekst verwijder als in K11 in behandeling of goedgekeurd komt te staan.

Dashcam Drenthe
Master
 Bericht 
Miss de volgorde omdraaien?

=ALS(K11="in behandeling"; "Offerte"; ALS(K11="Goedgekeurd";"Bestelling";ALS(ISTEKST(D11);"In behandeling"; "")))

Edit: check werkt :thumb:

Pietert
Master
 Bericht 
Dat klopt ook. Hij werkt de alsen van links naar rechts af. Als er in D11 tekst staat, valt hij in de eerste case en werkt dus verder niets meer af.
Als je het wat strikter wil maken zal je dus het eerste gedeelte moeten vervangen door Als(En(istekst(d11); K11=""),
ofzoiets. Checken of K11 leeg is

Dashcam Drenthe
Master
 Bericht 
Ik heb een probleem met de macro's.
Ik heb geen enkele instelling veranderd en ik kan opeens geen macro's meer maken, bewerken. Niets meer :nah: De bestaande doet ook niets meer.
Afbeelding

Online kan ik ook niets erover vinden, iemand een idee...?

DikkeDiesel
Master
 Bericht 
Wel als xlsm gesaved?

Dashcam Drenthe
Master
 Bericht 
jup

DikkeDiesel
Master
 Bericht 
Raar want de macro lijkt helemaal verdwenen te zijn

Edit: als je Alt-F11 doet, krijg je dan een scherm met je code?

Dashcam Drenthe
Master
 Bericht 
Klopt, hij doet ook niets meer bij opstarten...
Ik snap er helemaal niets van. Krijg ook niets meer aan de praat.

Kan 'm wel opnieuw in Visual Basics zetten maar daarna komt die gewoon niet te voorschijn als ik 'm opsla.

Dashcam Drenthe
Master
 Bericht 
DikkeDiesel schreef:
Edit: als je Alt-F11 doet, krijg je dan een scherm met je code?

Dat wel.

Dashcam Drenthe
Master
 Bericht 
Nu krijg ik een melding 'Dubbelzinge naam gevonden: Auto_open

Dashcam Drenthe
Master
 Bericht 
En het doet het weer...apart.

Rover
Master
 Bericht 
Het is een private sub dacht ik, dan krijg je hem normaal gesproken niet in het lijstje van macro's te zien.

Dashcam Drenthe
Master
 Bericht 
Ik moet de naam intikken en dan kan ik alle knoppen weer aantikken. kan maar zo dus.

Dashcam Drenthe
Master
 Bericht 
Kun je ook 2 automatische macro's hebben?

Moet ie een andere naam hebben, maar als ik ze beide sub_auto open noem dan gaat dat denk ik niet goed.

Pietert
Master
 Bericht 
Nee. Maar je kan ze allebei onder een andere naam zetten en dan binnen de sub auto_open beide aanroepen.

DikkeDiesel
Master
 Bericht 
Als je Private weghaalt uit Private Auto_Open is hij zichtbaar

Dank je Rover, weer wat geleerd

Dashcam Drenthe
Master
 Bericht 
Pietert schreef:
de sub auto_open beide aanroepen.

Ik heb m'n hoofd erover gebroken, maar heb toch een klein duwtje in de goede richting nodig :x

Pietert
Master
 Bericht 
Code:
sub maak_link()
  <al die code van de vorige 5 pagina's>
end sub

sub tweede_project()
  <al die code die je nog gaat vragen>
end sub

sub auto_open()
  maak_link()
  tweede_project()
end sub


Rover
Master
 Bericht 
Macro 1 zet je tussen:
Sub Macro1()
inhoud van macro
End Sub

Macro 2:
Sub Marco2()
inhoud van macro
End Sub

In de sub auto_open zet je:
Private Sub Auto_open()
Macro1
Macro2
End sub

Wil je een macro niet zichtbaar hebben in je lijstje met macro's (kan onoverzichtelijk worden, en vaak hoef je ze zelf niet aan te sturen vanuit Excel, dan kun je dus Private Sub Naam() gebruiken

DikkeDiesel
Master
 Bericht 
Waarom zou je ze niet combineren tot 1 als ze toch beide automatisch moeten worden uitgevoerd bij openen van de sheet?

Of de 2e aanroepen vanuit de 1e (dmw Call) zoals Pietert zegt?

Pietert
Master
 Bericht 
DikkeDiesel schreef:
Waarom zou je ze niet combineren tot 1

Overzicht.

DikkeDiesel
Master
 Bericht 
Als het complex wordt is dat handig ja.

Pietert
Master
 Bericht 
Nee, dan ben je te laat ;)
Om te voorkomen dat het complex wordt aparte stukje functionaliteit in aparte subs :)

Dashcam Drenthe
Master
 Bericht 
Zo dus?
Code:
sub maak_link()
'
' Aanvraag Macro
'
Dim folder As String
  Dim Rng As Object
  Dim file As Variant
  Dim r As Integer
 
  r = 9                          ' vullen vanaf rij 9
 
  folder = Cells(1, 19).Value     ' Te scannen folder staat in cel S1

While Cells(r, 3).Value <> ""   ' Doorloop rij
    file = Dir(folder & "*" & Cells(r, 3).Value & "*.xlsx")
    If file <> "" Then
      Cells(r, 2).Value = file      ' Plaats de filenaam
      Set Rng = Cells(r, 2)         ' Plaats de hyperlink
      ActiveSheet.Hyperlinks.Add _
              Anchor:=Rng, _
              Address:=folder & file, _
              ScreenTip:=file, _
              TextToDisplay:=file
    End If
    r = r + 1                     ' Volgende rij
  Wend
end sub

sub tweede_project()
'
' Aanvraag Macro
'
Dim folder As String
  Dim Rng As Object
  Dim file As Variant
  Dim r As Integer
 
  r = 9                          ' vullen vanaf rij 9
 
  folder = Cells(2, 19).Value     ' Te scannen folder staat in cel S2

While Cells(r, 15).Value <> ""   ' Doorloop rij
    file = Dir(folder & "*" & Cells(r, 15).Value & "*.xlsx")
    If file <> "" Then
      Cells(r, 13).Value = file      ' Plaats de filenaam
      Set Rng = Cells(r, 13)         ' Plaats de hyperlink
      ActiveSheet.Hyperlinks.Add _
              Anchor:=Rng, _
              Address:=folder & file, _
              ScreenTip:=file, _
              TextToDisplay:=file
    End If
    r = r + 1                     ' Volgende rij
  Wend
end sub

sub auto_open()
  maak_link()
  tweede_project()
end sub

2e code is vrijwel identiek aan de 1e

Pietert
Master
 Bericht 
In dat geval kan je beter de code abstraheren en dus helemaal identiek maken. De verschillen (puur cijfermatig, volgens mij?) afvangen in functie-variabelen en die meegeven met 2x een call naar de zelfde functie.

Dashcam Drenthe
Master
 Bericht 
Pietert schreef:
. De verschillen (puur cijfermatig, volgens mij?)

Andere cellen moeten gevuld worden en hij kijkt naar een andere map. Voor de rest hetzelfde.

Pietert schreef:
afvangen in functie-variabelen en die meegeven met 2x een call naar de zelfde functie.

Oh ja

:x :lol:

Pietert
Master
 Bericht 
Leesvoer: http://www.functionx.com/vbaexcel/functions/Lesson3.htm

(of je laat het zo staan. Werkt ook)

Dashcam Drenthe
Master
 Bericht 
sub auto_open()
maak_link()
tweede_project()
end sub

Hij zegt compileerfout: syntaxisfout *googled*

DikkeDiesel
Master
 Bericht 
Wat voor foutmelding precies?

Rover
Master
 Bericht 
sub auto_open()
maak_link
tweede_project
end sub

Haakjes weghalen, dan werkt hij

Dashcam Drenthe
Master
 Bericht 
Haakjes weghalen en hij doet het idd :thumb:

Wat moet ik toch zonder jullie :lief:

Pietert
Master
 Bericht 
Rover schreef:
Haakjes weghalen,

Oja, is een sub, geen function :)

Jack.Ryan
FS Meldingen
 Bericht 
Pietert schreef:
Oja, is een sub, geen function :)

:nono: :nono: :nono: Het is het aanroepen van een sub/function. Niet het declareren van een sub of een function.

Pietert
Master
 Bericht 
Kut VBA...

Hoe geef je dan parameters mee aan een function?

wellproc
Master
 Bericht 
Pietert schreef:
Hoe geef je dan parameters mee aan een function?

Tussen haakjes

Pietert
Master
 Bericht 
Maar maar maar

Jack.Ryan schreef:
Het is het aanroepen van een function


DikkeDiesel
Master
 Bericht 
Wat moet ik toch zonder jullie
Ja dat zou ik ook niet weten :lol:

Een mogelijkheid om een Sub aante roepen waarbij de parameters volgen zonder haakjes:
Code:
sub auto_open()
maak_link 1, 2
tweede_project 3
end sub

Een andere mogelijkheid is het gebruik van "Call" en dan gaan de parameters met haakjes:
Code:
sub auto_open()
Call maak_link(1, 2)
Call tweede_project(3)
end sub

Een Function gaat altijd met haakjes.

Dashcam Drenthe
Master
 Bericht 
Alweer een vraag.

Is het mogelijk om automatisch een mail te versturen wanneer een bepaalde cel wordt ingevuld?

Nu had ik dit gevonden:
Code:
Sub mailen()
ActiveWorkbook.SendMail "ontvanger@mail.nl", "Dit is het onderwerp"
End Sub


Hierbij wordt er een soort knop gemaakt volgens mij, ik wil echter dat wanneer cel O9 wordt ingevuld dat het e-mail adres in cel D9 een mail verzonden wordt 'leverdatum is 'inhoud cel' '
En wanneer O10 wordt ingevuld dat D10 mail wordt verstuurd etc.

Is dit überhaupt mogelijk?

Rover
Master
 Bericht 
Het zal in ieder geval mogelijk moeten zijn Outlook te laten openen met een nieuwe mail daarin. Maar ik heb nu geen tijd om mij daarin te verdiepen.

Er is uiteindelijk heel veel mogelijk, alleen er zijn natuurlijk verschillen in simpel en wat lastiger. Dit valt denk ik onder de 2de categorie :)

ericj
Die hard
 Bericht 
Ja dat kan. Het sturen van de mail is geen probleem verwacht ik, de uitdaging is om het bij 1 mail te houden. Je moet dus bedenken op welk moment de invoer afgerond is.

Rover
Master
 Bericht 
Direct na het verzenden de datum laten invullen (met vba) in een kolom ernaast. Noem die kolom --> Datum verzonden, weet je direct wanneer het is verstuurd.
In VBA controle erop laten uitvoeren dat het datumveld leeg moet zijn voordat hij de mail verstuurd.

Dashcam Drenthe
Master
 Bericht 
Hoe bedoelen jullie met leeg moet zijn? De leverdatum is bekend, medewerker voert datum in in cel O9 en de aanvrager waarvan het e-mailadres in cel D9 staat moet dan een mailtje krijgen.

ericj
Die hard
 Bericht 
Ik bedoel dat de meest voor de hand liggende event trigger een OnChange van de cel is o.i.d., maar die gaat ook af terwijl je aan het tikken bent maar nog niet klaar. En je wilt pas een mail sturen als je klaar bent met tikken, dus daar moet je iets op bedenken (andere event gebruiken of een timer gebruiken). Zoals Rover al zei, dit valt in de wat lastiger categorie.

 Pagina 9 van 11 [ 517 berichten ] 


Wie is er online

Gebruikers op dit forum: Geen geregistreerde gebruikers en 1 gast


Je mag geen nieuwe onderwerpen in dit forum plaatsen
Je mag niet antwoorden op een onderwerp in dit forum
Je mag je berichten in dit forum niet wijzigen
Je mag je berichten niet uit dit forum verwijderen
Je mag geen bijlagen toevoegen in dit forum

Zoek…