prlsMedlem sedan jan. 2000352 inlägg Hej,
... nu har jag kommit på en förbättring:
Visa celler måste vara ifyllda för att "programmet" skall fungera som det är tänkt, tex cell L9. Nu har jag kommit på nedanstående kod: <font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">Private Sub CommandButton1_Click()
Dim rnCell As Range
Set rnCell = ThisWorkbook.Worksheets("vätskebalans").Range("K6")
Range("L9").Select
If Range("L9") = 0 Then Exit Sub
ChDir "C:\WINDOWS\Desktop"
ActiveWorkbook.SaveAs Filename:="C:\WINDOWS\Desktop\" & CStr(rnCell.Value) & ".xls"
ChDir "C:\vätskebalans"
ActiveWorkbook.SaveAs Filename:="C:\vätskebalans\" & CStr(rnCell.Value) & ".xls"
Application.Quit
End Sub
Detta funkar för mig på min dator!
Är det bara tur eller rätt kod?
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg Dennis,
det är exakt det jag är ute efter att kolla att inte cellerna är tomma! Och har bara ett arbetsblad i filen.
Fattar inte riktigt vad som skiljer våra koder*hmpf*
Jag har kommit så här långt med min kod <font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">Private Sub Sparknapp_Click()
Dim rnCell As Range
Set rnCell = ThisWorkbook.Worksheets("vätskebalans").Range("I1")
Range("I1, K6, E47:K47, E48:K47, E49:EK49").Select
If Range("L9") = 0 Then MsgBox "Patientens LÄNGD måste vara i fyllt"
If Range("I1") = 0 Then MsgBox "Personnumret måste vara i fyllt"
här körde jag fast
If Range("E47:K47") = 0 Then MsgBox "Du har glömt fylla i VIKTen"
If Range("E48:K48") = 0 Then MsgBox "Du har glömt fylla kroppsTEMPen"
If Range("E49:K49") = 0 Then MsgBox "Du har glömt fylla i dagens Vikt"
With ActiveWorkbook
.Save
.SaveCopyAs "C:\Vätskebalans\" & CStr(rnCell.Value) & ".xls"
End With
Application.Quit
End Sub
De problem jag har är:
- om inte samtliga villkor är uppfyllda så vill jag "Exit Sub"
- som Du kommer ihåg fick jag "datum" koden av dig - den måste väl oxå tas med i villkoren, eller hur? Jag menar så här:
om idag vi är i kolumn E så vill jag att cellerna E47:49 inte får vara tomma, men F47:K49 måste rimligtvis vara tomma. Och imorgon dvs Kolumn F gäller att F47:49 måste vara i fyllda, medan G47:K49 SKall vara tomma osv.
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg Kanske lättare att förstå om man har tillgång till filen.
http://lelkes.webhostme.com/testa_bal_hemma.zip Ladda ner filen
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg Ladda ner filen
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg jätte läckert tack! - har bara klistrat in, men ngra "snabba" frågor:
- Du gillar använda prefixet "rn" som tex rnDatum eller rnCell. Vad betyder "rn"? hittar inte den förkortningen i "hjälpen"
- Vad betyder "s", tex i sMedd?
- Vad betyder "vb",tex i vbCritical
- Vad betyder "Cstr()". Antar att det har något med sträng att göra?
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg samt:
- "cellC" (utan mellanslag) menar Du med det alla celler i kolumn C?
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg Dennis, Du är en guldgruva*ler*
men kan Du förklara lite bättre vad Du menar med:
rncellC och rncellD?
rncellC skrev Du att det var cell kontroll - på vilket sätt?
If IsEmpty(rnCellC) Then= om jag fattar
att man skall kolla om rnCell, dvs I1 är tom, eller?
"For Each rnCellD In rnDatum" betyder detta att programet kontrollerar om en cell har datum i fyllt?
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg Iof. har klockan hunnit bli sen (kl är 02), men jag har ngra ”fundarationer”:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"> rad1) For Each rnCellC In rnOmrade
rad 2) If IsEmpty(rnCellC) Then
rad 3) MsgBox sMedd, vbCritical, sTitel
rad 4) End
rad 5) End If
rad 6) Next rnCellC
rad 7) End If
rad 8) Next rnCellD
Några frågor:
- ”End” i rad 4 tillhör det MsgBoxen?
- Om jag har fattat rätt så betyder rad 1+ 2 att för varje cell i området skall programmet kontroller om cellen är tom, och om den är det så kommer MsgBox upp. Varför behövs då rad 6?
- Du har skrivit 2 st. ”End If” (rad 5 + 7), men bara 1st ”If” (rad 2). Iof. Har VBE accepterat det, men jag trodde att If och End If alltid ”kommer i par”
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600"> rad a) Set wsBlad = ThisWorkbook.Worksheets("vätskebalans")
rad b) With ActiveWorkbook
rad c) .SaveAs Filename:="C:\WINDOWS\Desktop\" & CStr(rnCell.Value)
rad d).SaveCopyAs Filename:="C:\Vätskebalans\" & CStr(rnCell.Value) & ".xls"
End With
- Skulle man kunna skriva:. wsBlad.SaveAs Filename:="C:\WINDOWS\Desktop\" & CStr(rnCell.Value) i stället?
- Om ja, fördelar och nackdelar
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg Hej Dennis,
Se där - Nu har har du kanske lärt dig mer men som sagt: Undvik de två sista timmarna framför skärmen ;-)
…inte kanske, UTAN jag lär mig MASSOR varje gång Du svarar!!
Jag håller hellt med dig om nanosekunder, men det är ju så spännande att lära sig nåt nytt, såsom VBA.
Det där med att översätta till svenska har jag kommit på själv med, och faktiskt kommit fram till samma översättning.
Jag skall ivrigt fortsätta att studera VBA när boken kommit. Har redan idée om förbättring – genom att använda listbox…enl exemplet på din sida
Ajdå, nu har jag fått problem med instalationen - se nästa fråga*ler*
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg Vill skapa en Sub som när den körs tar bort den öppna filen
Försökt tänka baklänges, men har inte kommit ngn vart på 3 timmar:
Nedanstående är ett av mina försök:
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">Private Sub Tabortknapp_Click()
Dim wsBlad As Worksheet
Dim rnCell As Range
Set wsBlad = ThisWorkbook.Worksheets("vätskebalans")
Set rnCell = wsBlad.Range("I1")
.Delete Filename:="C:\WINDOWS\Desktop\" & CStr(rnCell.Value)
End Sub
Får hela tiden felmedd: ”Kompileringsfel: Ogiltig eller okvalifierad referens” och .Delete markeras
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter
prlsMedlem sedan jan. 2000352 inlägg hittade på detta med, med hjälp fr hjälpfilen:
Private Sub Sparknapp_Click()
Dim wsBlad As Worksheet
Dim rnCell As Range
Dim objFilsystem As FileSystemObject
Dim objFill As File
Set wsBlad = ThisWorkbook.Worksheets("vätskebalans")
Set rnCell = wsBlad.Range("I1")
Set objFill = "C:\WINDOWS\Desktop\" & CStr(rnCell.Value)
objFill.Delete
kan man anv. denna variant med?
vad skall då Set objFilsystem=??
------------------
Tack på förhand!
Det är svårt när förmågan/kunskaperna vida överstiger idéerna/Peter