Tecnologia, programação e muito Visual FoxPro.

terça-feira, 17 de agosto de 2010

Re: ]] XL-mania [[ Mengambil nilai awal pada Formula

 

Menurut ceritak-nya, data yg akan diproses cukup banyak
Mungkin pula pemakai ingin hanya sekali "tepuk" ..dan semua data sudah
dibuatkan konversi/hasil di kolom lain, yg sudah berupa konstanta
(bukan formula seperti solusi dengan UDF)

Kalau begitu kita perlu TOMBOL yg dapat mengulang-ulang pekerjaan di tiap baris data
Mungkin prosedur Sub yg akan dipanggil oleh si-Tombol, isinya seperti ini

Sub ProcessAllDataInRange()
   ' siti Vi // 16 aug 2010
   ' memproses sekelompok data dlm sekali tepuk !!
   '----------------------------------------------
  
   ' mendeklarasikan 3 variable yg akan dipakai
   Dim Rng1 As Range, Rng2 As Range, r As Long
  
   'Menentukan Range1 (input range / sekoom data yg akan diproses)
   Set Rng1 = Application.InputBox( _
       Prompt:="Tunjuk / Tentukan Range Data yg akan diproses", _
       Title:="Range data yg akan diproses", Default:=Selection.Address, Type:=8)
  
   ' menentukan Range2 (Output Range / kolom hasil )
   Set Rng2 = Application.InputBox( _
       Prompt:="Tunjuk / Tentukan Cell Tujuan dimana Hasil akan dituliskan", _
       Title:="Range Tujuan", Default:=Rng1(1, 3).Address, Type:=8)
      
   ' Loop : memproses semua data di Range1 dibantu oleh UDF FirstOperand
   For r = 1 To Rng1.Rows.Count
      Rng2(r, 1) = IIf(Rng1(r, 1) = "", "", FirstOperand(Rng1(r, 1)))
   Next r
  
   ' merapihkan kolom hasil
   With Rng2.Resize(Rng1.Rows.Count, 1)
     .NumberFormat = "General"
     .EntireColumn.AutoFit
   End With
   ' kelarr dech....
End Sub



2010/8/17 STDEV(i) <setiyowati.devi@gmail.com>
UDF yg dimodifikasi: untuk mengantisipasi agar jika di dalam text formula
terdapat karakter KURUNG "(",  ")" dan SPASI " " tidak menghasilkan error
demikian juga bila sormula menghasilkan TEXT atau cell yg dirujuk berisi
konstanta, bukan formula.

Function FirstOperand(Cell As Range)

   ' siti Vi // 16 aug 2010
   ' mencari nilai operand pertama dlm formula
   '------------------------------------------
   Dim Operators, TandaLain
   Dim Formo As String
   Dim Hasil As String
   Dim i As Integer
  
   Operators = Split("+ - * / ^ &")
   TandaLain = Split("\ \(\)\" & """", "\")
   If Cell.HasFormula Then
      Formo = Cell.Formula
      For i = 0 To UBound(TandaLain)
         Formo = Replace(Trim(Formo), TandaLain(i), "")
      Next i
      For i = 0 To UBound(Operators)
         Formo = Replace(Formo, Operators(i), "|")

      Next i
      Hasil = Mid(Formo, 2, InStr(2, Formo, "|") - 2)
      If IsNumeric(Hasil) Then
         FirstOperand = Val(Mid(Formo, 2, InStr(2, Formo, "|") - 2))
      Else
         FirstOperand = Mid(Formo, 2, InStr(2, Formo, "|") - 2)
      End If
   Else
      FirstOperand = Cell.Value
   End If
End Function

Penjelasan code (= "Tafsir Al-Assalll" / tafsir asal-asalan) ada di woksit lampiran..
Merdeka !!

 

> 2010/8/14 Ezra Sangga <ezra.sangga@borneo.co.id>
> Dear para pakar Exel mania,
> Saya mohon dibantu untuk permasalahan saya ini.
> Setiap hari (pertanggal) saya harus mengambil Hours Meter dari setiap unit.
> Tetapi data yang saya dapatkan dari data entri berupa formula sbb:
> =4282-4272.9. HM yg harus saya ambil setiap hari adalah 4282.
> bagaimana cara cepat untuk mendapatkannya, karena saya harus mlakukannya setiap hari dengan ribuan unit.
> Terlampir datanya.
> Terima kasih sebelumnya atas bantuannya.
> Thanks & Regards
> Ezra


__._,_.___
Recent Activity:
+-:: XL-mania ::::::::::::::::::::----------------------------------+
| selamat menunaikan ibadah puasa... walau perut lapar, tanya excel |
| jalan terus... malu bertanya telat pulang kantor :D :D :D         |
| http://www.facebook.com/group.php?gid=37671048001&ref=mf          |
+-------------------------------------------------------------------+
| DILARANG : MLM, money game, OOT, iklan tanpa izin, SARA, testing, |
| pembicaraan pribadi, one line message,  melecehkan,  tidak sopan. |
+-------------------------------------------------------------------+
| Buat subjek yang kreatif, jangan : "tanya", "help", "mohon bantu" |
| Usahakan besar attachment < 200 kb. Gunakan  winzip  jika  perlu. |
+-------------------------------------------------------------------+
| Ajak teman-teman Anda bergabung dengan mengirim e-mail kosong ke  |
| XL-mania-subscribe@yahoogroups.com atau kirimkan mereka file dari |
| http://groups.yahoo.com/group/XL-mania/files/Promotion/           |
+-------------------------------------------------------------------+
| Berikan testimoni di : http://www.friendster.com/xlmania atau...  |
| http://www.xl-mania.com/2008/06/testimoni-xl-mania.html           |
+-------------------------------------------------------------------+
| Message lama ada di :                                             |
| http://groups.yahoo.com/group/XL-mania/messages [perlu yahoo id]  |
| http://www.mail-archive.com/xl-mania@yahoogroups.com              |
+-------------------------------------------------------------------+
MARKETPLACE

Get great advice about dogs and cats. Visit the Dog & Cat Answers Center.


Hobbies & Activities Zone: Find others who share your passions! Explore new interests.


Stay on top of your group activity without leaving the page you're on - Get the Yahoo! Toolbar now.

.

__,_._,___

Nenhum comentário:

Arquivo do blog