Dansk Regneark Forum
  Hjælp Hjælp  Søg i forum   Arrangementer   Opret ny bruger Opret ny bruger  Log ind Log ind


Emne lukketVBA formel for logiske argumenter

 Besvar Besvar
Forfatter
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Emne: VBA formel for logiske argumenter
    Sendt: 18.Nov.2017 kl. 20:54
Hej med Jer skarpe Excel brugere
 
Jeg sidder og forsøger at få en makro til at virke uden held.
Det ser ud til at det er selve formlen den er gal med ... tror jeg.
 
For eksemplets skyld:
Jeg har værdier i cellerne A1:D1 og F1:I1 og K1:N1
Jeg står  celle O1 (umiddelbart efter de celler jeg skal tjekke)
Jeg vil gerne at VBA-koden skriver en formel i O1 hvor jeg står
 
Hvis blot én af cellerne ovenfor er forskellig fra "-" og mindre en 0, så angiv værdien 2 ellers angiv værdien 1 (i celle O1)
 
Har I en ide til hvordan en sådan formel tager sig ud i VBA.
.. gerne angivet som relativ reference hvis muligt
 
På forhånd tak
Peppe
Med venlig hilsen

\\Peppe
Til top



Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 20.Nov.2017 kl. 20:58

Hej peppe

Her er en fil hvor jeg har indsat en makro der oprette en formel i celle DQ4

Husk at markere med tak eller marker med Accepteret løsning, hvis det er noget du kan bruge



uploads/1628/2017_data_2__mads32_2017-11-20_20-56-36.xlsm
Til top
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Sendt: 18.Nov.2017 kl. 22:29
... mit eget forslag (udvalgte celler - der mangler nogle):
ActiveCell.FormulaR1C1 = _
        "=IF(OR(AND(RC[-14]<>""-"",RC[-14]<0),AND(RC[-13]<>""-"",RC[-13]<0),AND(RC[-12]<>""-"",RC[-12]<0),AND(RC[-11]<>""-"",RC[-11]<0),AND(RC[-9]<>""-"",RC[-9]<0),AND(RC[-8]<>""-"",RC[-8]<0)),2,1)"
Problemet er at der er en hel del flere celler end angivet i eksemplet ovenfor - og pludselig bliver formlen enormt lang og uoverskuelig (der er i alt ca. 100 celler, der er omfattet i grupper af 14)
Med venlig hilsen

\\Peppe
Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Direkte link til dette indlæg Sendt: 18.Nov.2017 kl. 22:30
Hej peppe

Jeg har lavet et lille eksempel, men direkte på arket. Formlerne kan så indsættes via en makro hvis du mener det er nødvendigt.

Jeg har lavet 3 formler. 2 formler der undersøger dine betingelser hver for sig, og en formel der laver en samlet undersøgelse.

jeg vedlægger et link.


Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Til top
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Sendt: 18.Nov.2017 kl. 23:30
... Det ser ud til jeg skal logge på et eller andet "dropbox" ...
Jeg har ingen profil eller login eller andet til dette sted...?
Med venlig hilsen

\\Peppe
Til top
icet Se dropdown
Bronze bruger
Bronze bruger


Medlem: 08.Nov.2013
Status: Offline
Point: 95
Direkte link til dette indlæg Sendt: 19.Nov.2017 kl. 09:49
bare tryk på download--> vælg direkte download og så vælge at downloade uden at logge på
Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Direkte link til dette indlæg Sendt: 19.Nov.2017 kl. 10:17
Hej peppe

Jeg har nu prøvet at uploade en fil.

Jeg håber den bliver synlig for dig

uploads/1628/hjælp_til_at_vælge_flere_kolonner__Mads32.xlsx
Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Direkte link til dette indlæg Sendt: 19.Nov.2017 kl. 10:22
Hej peppe

Jeg kan se på tråden, at mit upload er synlig.

Jeg vil lige kommentere det jeg har sendt.

Jeg synes det skal forbedres på den måde at der til navnelisten knyttes tal, således at øverste navn på listen får 1, nummer to på listen 2, og så videre.  Dette letter indtastningen, og det er mere sikker at taste ettal end at skrive et navn.  Der skal jo være 100% overensstemmelse mellem dine indtastninger i skemaet og din navne liste. 
Til top
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Sendt: 19.Nov.2017 kl. 19:20
Jeg har kigget lidt på de eksempler der er lagt op.
Tak for de gode forslag
 
En fin samling af muligheder, men ikke helt den løsning jeg søger.
Som udgangspunkt ønsker jeg en formel angivet i VBA.
 
Jeg lægger filen op med det regneark det drejer sig om.
Hvis i kigger i VBA sub modulerne, så vedrører det hhv.
"Value_zero" og "Value_negative".
Jeg har angivet en kommentar, der viser hvor jeg ønsker en formel indsat.
 
Som I ser, så har jeg lavet nogle knapper, der henviser til de enkelte sub-moduler.
På den måde kan jeg få listet forskellige data.
 
Hvis der er spørgsmål, så gerne skriv :-)
 
Her er den specifikke fil...:
 
På forhånd mange tak
Med venlig hilsen

\\Peppe
Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Direkte link til dette indlæg Sendt: 19.Nov.2017 kl. 22:45
Hej

Som jeg ser dine makroer, ønsker du at makroen skriver en formel i DQ4, og kopierer den til DQ5:DQ3650.  Hvorfor ikke indsætte formlen direkte i kolonne DQ????

Jeg har indsat en formel i vedhæftede link.

Det er lidt svært at forstå hvordan dit program skal virke. Hvor der indtastes data, og hvor data eventuelt overføres med formler.


Til top
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Sendt: 19.Nov.2017 kl. 22:53
Nej jeg medgiver at arket er lettere mangelfuldt - herunder også makroer.
Jeg har for overskuelighedens skyld valgt at fjerne alt "unødigt støj".
 
Ja helt korrekt - VBA indsætter formlen i DQ4 og herefter udfyldes mv.
Det er for at kunne benytte de knapper jeg har lavet - og der kommer måske flere.
For at gøre arket så enkelt og brugervenligt som muligt, så
har jeg valgt at bygge det op med små makrokoder :-)
 
Det vedhæftede link...?  kan ikke se et link ?
 
Venligst Peppe
Med venlig hilsen

\\Peppe
Til top
Bjarnehansen Se dropdown
Platin bruger
Platin bruger
Avatar

Medlem: 20.Nov.2011
Land: DK
Status: Offline
Point: 5485
Direkte link til dette indlæg Sendt: 20.Nov.2017 kl. 14:13
prøv at upload hele dit ark så kan det være vi får en bedre forståelse af hvordan det skal virke...
Husk, at trykke på [Tak], hvis du kan lide et indlæg.
Husk, at trykke på [Accepteret Svar], hvis du kan bruge et løsningsforslag.
Med venlig hilsen - Bjarne Hansen - Microsoft 365 DK
Til top
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Sendt: 20.Nov.2017 kl. 16:48
uploads/106/2017_data.xlsm
Her er arket. Det er samme ark som tidligere uploadet.
I forhold til Den specifikke formel jeg søger indsat, så
vil det ikke give meget mening at have hele arket med (ca. 20 MB).
Der er ca. 20 faner med rådata og andre oplysninger.
 
Selve opgaven
Der er data i P4:DP3649
Ved at trykke på en simpel knap, så kan man ved hjælp af VBA få "filtreret" -
eller måske snarere fjernet unødvendige data.
Det gøres ved brug af en formel i DQ4, der angiver 1 hvis linjen skal slettes eller 2 hvis den skal være der
Fx kun få vist data der er 0 eller data med negative værdier
Der er flere kolonner med samme ID (MNO), som ikke skal indgå i sorteringen.
 
Jeg ønsker VBA til at indsætte en formel i DQ4 (afhængigt af hvilken knap og kriterier) der ønskes
Fx HVIS(ELLER(OG(P4<>"-";P4=0);OG(P5<>"-";P5=0);...OSV...OG(DP4<>"-";DP4=0));2;1)
 
Dog i VBA opbygget som relative reference som angivet tidligere i tråden.
 
Jeg er overbevist om at jeg godt selv kan lave formlen, MEN den bliver ENORMT lang - og det er det jeg helst vil undgå - Jeg tænker at de skarpe Excel eksperter herinde sikkert med lethed kan bygge en lettere formel op der ikke fylder 100 km :-)
 
Peppe
Med venlig hilsen

\\Peppe
Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Direkte link til dette indlæg Sendt: 20.Nov.2017 kl. 17:41
Hej 

Jeg har skrevet nedenstående makro, der indsætter en formel i DQ4.

Det er en simpel formel, men du skal blot erstatte min formel med din "kilometer lange" formel.

God fornøjelse


Sub INDSAET_FORMEL_I_DQ4()

' INDSAET_FORMEL_I_DQ4 Makro
' Formel skrives direkte i celle

    Range("DQ4").Select
'   i nedenstående skal du blot erstatte =COUNT(RC[-101]:RC[-1])med din formel
    ActiveCell.FormulaR1C1 = "=COUNT(RC[-101]:RC[-1])"
    Range("DQ5").Select
    
End Sub

Til top
peppe Se dropdown
Sølv bruger
Sølv bruger
Avatar

Medlem: 26.Okt.2010
Land: Danmark
Status: Offline
Point: 294
Direkte link til dette indlæg Sendt: 20.Nov.2017 kl. 19:57
Er det korrekt forstået at formlen du angiver indsætter funktionen "Tæl".
Hvor resultatet (hvis jeg har forstået det korrekt) bliver antallet af celler med værdier FRA celle [-1] TIL celle [-101] ?
Så hvis jeg forstår dig rigtigt, så skal jeg have Excel til at tælle antallet af celler, hvor værdien er inden for de kriterier jeg ønsker... Er det korrekt?
Hvis jeg kan skrive den formel, så vil det jo gøre formlen enormt meget mindre...
 
Ville jeg så ikke skulle bruge CountIf?
Noget a la If(CountIf(RC[-101]:RC[-1],0)">="&1,2,1)
Skal læses: "tæl antallet af celler med værdien 0. Hvis der er flere end eller lig med 1, så skriv 2 ellers skriv 1"
Er det sådan du mener det skal gøres?
 
Peppe
Med venlig hilsen

\\Peppe
Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Direkte link til dette indlæg Sendt: 20.Nov.2017 kl. 20:16
Hej

Det makro er skrevet er et eksempel med en simpel formel, og kan slet ikke anvendes i dit skema.

Du skal anvende den formel du selv har lavet(hvis den er rigtig) og indsætte den mellem citationstegnene "" og "". Det vis sige du skal udskifte formlen =COUNT(RC[-101]:RC[-1]) med din "Kolometerlange formel". 
Jeg har prøvet at opstille en formel, men antal af tomme celler variere i de enkelte linjer, så der kan ikke skrives en generel formel hvis der ikke er kendskab til hvor mange tomme celler der må være, og hvor mange tomme celler der er på grund af manglende data.
Jeg har en ide om at antallet af tomme celler der må være i området fra kolonne P til kolonne DP er
: 105-(7*antal af måneder der ikke er data i).  I din fil vil det være 105-(7*2) = 91
Hvis dette er rigtig kan der opstilles en formel, som også tager hensyn til hvor mange måneder der ikke er udfyldt.
Til top
Mads32 Se dropdown
Guld bruger
Guld bruger
Avatar

Medlem: 26.Feb.2016
Land: Danmark
Status: Offline
Point: 1317
Accepteret svar Accepteret svar
Direkte link til dette indlæg Sendt: 20.Nov.2017 kl. 20:58

Hej peppe

Her er en fil hvor jeg har indsat en makro der oprette en formel i celle DQ4

Husk at markere med tak eller marker med Accepteret løsning, hvis det er noget du kan bruge



uploads/1628/2017_data_2__mads32_2017-11-20_20-56-36.xlsm
Til top
 Besvar Besvar

Skift forum Forum tilladelser Se dropdown

© 2010 - 2024 Dansk Regneark Forum - en del af Excel-regneark.dk