Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Info Coronavirus/Vaccinare vs Fake News

SSD M2 ieftin pentru un laptop My...

Programator USB-ISP E-LAB

Monitor cu probleme
 Panouri PV - TVA de 5%, dar nu pt...

Inca doua zile libere in ianuarie

vt-x not support acer predator

Furt intre soti
 Casa verde fara injectare in retea

huawei p20 & p20 pro

Comanda de grup Signal Stick

Recomandare becuri LED
 Pot inchide un abonament de telef...

Lista firme austriece in Romania

Toyota bZ3, noul sedan electric

Recomandare melodii in genul asta
 

introducerea obligatorie a datelor intr-un document excel

- - - - -
  • Please log in to reply
10 replies to this topic

#1
ionel.sat

ionel.sat

    Member

  • Grup: Members
  • Posts: 815
  • Înscris: 26.11.2005
Problema ce ma intereseaza pe mine este urmatoarea:

am un document excel pe care il primesc complectat prin e-mail cu anumite date.
este posibil ca acel document sa nu poata fi inchis pana cand nu introduce in el anumite date sau valori in anumite casute?

de exemplu eu am creat un tabel in care cel ce trebuie sa mi-l trimita completat trebuie sa introduca in anumite casute niste valori si intr-o casuta sa introduca data care specifica la ce perioada se refera acele date. daca el ignora sa introduca toate datele sa-l atentioneze in vreun fel sau sa nu-i dea voie sa-l inchida pana nu le introduce pe toate

#2
maro158

maro158

    Member

  • Grup: Members
  • Posts: 269
  • Înscris: 01.10.2007
Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim sht As Worksheet
    Dim rng As Range
    
    Set sht = ActiveWorkbook.ActiveSheet
    Set rng = sht.Cells(1, 1)
    
    If rng.Value = "" Then
        MsgBox ("Ooops!")
        Cancel = True
    End If
End Sub

#3
ionel.sat

ionel.sat

    Member

  • Grup: Members
  • Posts: 815
  • Înscris: 26.11.2005

View Postmaro158, on Feb 23 2008, 11:46, said:

Private Sub Workbook_BeforeClose(Cancel As Boolean)
    Dim sht As Worksheet
    Dim rng As Range
    
    Set sht = ActiveWorkbook.ActiveSheet
    Set rng = sht.Cells(1, 1)
    
    If rng.Value = "" Then
        MsgBox ("Ooops!")
        Cancel = True
    End If
End Sub

este o comanda pe care ar trebui sa introduc undeva?

#4
queensoft

queensoft

    Trust no one

  • Grup: Banned
  • Posts: 16,079
  • Înscris: 26.11.2005
E mai multe comenzi!!
Deschizi fisierul, intri la meniul: Tools > macro > visual basic editor
Click in stinga pe This Workbook
Pui tot textul ala de mai sus (comenzile) in dreapta.
Modifici : sht.Cells(1, 1) - in loc de 1,1 pui coordonatele casutei tale (faci probe pina o nimeresti - row, column)
Salvezi fisierul Excel (cu alt nume, sa-ti ramina originalul...), faci proba

#5
ionel.sat

ionel.sat

    Member

  • Grup: Members
  • Posts: 815
  • Înscris: 26.11.2005

View Postqueensoft, on Feb 29 2008, 19:14, said:

E mai multe comenzi!!
Deschizi fisierul, intri la meniul: Tools > macro > visual basic editor
Click in stinga pe This Workbook
Pui tot textul ala de mai sus (comenzile) in dreapta.
Modifici : sht.Cells(1, 1) - in loc de 1,1 pui coordonatele casutei tale (faci probe pina o nimeresti - row, column)
Salvezi fisierul Excel (cu alt nume, sa-ti ramina originalul...), faci proba

foarte frumos, multumesc cu aceasta ocazie si lui "maro158"

este posibil ca sa-mi si arate care este casuta pe care trebuie sa o completez, sau chiar casutele, caci in cazul meu sunt mai multe spatii ce ar trebui completate ?
pot fi puse si avertizari sonore?

#6
maro158

maro158

    Member

  • Grup: Members
  • Posts: 269
  • Înscris: 01.10.2007

View Postionel.sat, on Mar 1 2008, 09:55, said:

foarte frumos, multumesc cu aceasta ocazie si lui "maro158"

este posibil ca sa-mi si arate care este casuta pe care trebuie sa o completez, sau chiar casutele, caci in cazul meu sunt mai multe spatii ce ar trebui completate ?
pot fi puse si avertizari sonore?

Sorry, nu inteleg. Posteaza aici fisierul Excel in cauza si specifica care "casute" trebuie completate.

#7
ionel.sat

ionel.sat

    Member

  • Grup: Members
  • Posts: 815
  • Înscris: 26.11.2005

View Postmaro158, on Mar 6 2008, 11:18, said:

Sorry, nu inteleg. Posteaza aici fisierul Excel in cauza si specifica care "casute" trebuie completate.
am atasat fisierul Excel si am evidentiat cu galben casutele ce ma interesaza sa fie completate

cu instructiunile pe care m-i le-ai dat la inceput am reusit sa adaug si alte casute ce trebuiesc completate obligatoriu inainte de a inchide documentul, insa aceste casute in documentul original nu trebuie sa fie evidentiate in galben, deci este mai dificil pentru cine completeaza sa inteleaga care casuta ar mai trebui sa o completeze ca sa reuseasca sa salveze si sa inchida documentul, pe care apoi va trebui sa-l trimita prin e-mail

eu am intrebat daca-i posibil ca aceste casute sa fi semnalate in vreun fel. viziv sau daca-i posibil si viziv si acustic.

Daca eu introduc datele intr-o casuta sau chiar in mai multe casute din cele obligatoruii si nu le completez pe toate, sa-mi arate unde-i casuta pe care ar trebui sa o mai completez, si asa in continuare pana le competez pe toate cele obligatorii (evidentiate in galben)

Attached Files



#8
maro158

maro158

    Member

  • Grup: Members
  • Posts: 269
  • Înscris: 01.10.2007
Sper sa te ajute:

Option Explicit

Dim isInitialized As Boolean
Dim sht As Worksheet
Dim rangeToCheck(0 To 13) As Range

Private Sub Initialize()
 If Not isInitialized Then
   ' Set the range array
   Set sht = ActiveWorkbook.ActiveSheet
   Set rangeToCheck(0) = sht.Range("BG5")
   Set rangeToCheck(1) = sht.Range("BM5")
   Set rangeToCheck(2) = sht.Range("V8")
   Set rangeToCheck(3) = sht.Range("AG8")
   Set rangeToCheck(4) = sht.Range("AT8")
   Set rangeToCheck(5) = sht.Range("BN8")
   Set rangeToCheck(6) = sht.Range("V10")
   Set rangeToCheck(7) = sht.Range("AG10")
   Set rangeToCheck(8) = sht.Range("AT10")
   Set rangeToCheck(9) = sht.Range("BN10")
   Set rangeToCheck(10) = sht.Range("B38")
   Set rangeToCheck(11) = sht.Range("D38")
   Set rangeToCheck(12) = sht.Range("I38")
   Set rangeToCheck(13) = sht.Range("AH38")
 End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Dim i As Integer
 Dim isSomethingMissing As Boolean

 Call Initialize

 For i = LBound(rangeToCheck) To UBound(rangeToCheck)
   rangeToCheck(i).Select

   If Trim$(rangeToCheck(i).Value) = "" Then
	  ' Insert visual signal
	  With Selection.Interior
		 .ColorIndex = 38
		 .Pattern = xlSolid
	  End With

	  If (isSomethingMissing = False) Then
		 isSomethingMissing = True
	  End If
   Else
	  ' Remove visual signal if above condition is not met
	  If (Selection.Interior.ColorIndex = 38) Then
		 Selection.Interior.ColorIndex = xlNone
	  End If
   End If
 Next

 If isSomethingMissing Then
   ' Warn user
   Beep
   MsgBox "Please fill in the required information (magenta colored cells)!", vbExclamation, "Required information"
 End If

 ' Cancel closing if needed
 Cancel = isSomethingMissing
End Sub


Edited by maro158, 06 March 2008 - 17:43.


#9
ionel.sat

ionel.sat

    Member

  • Grup: Members
  • Posts: 815
  • Înscris: 26.11.2005

View Postmaro158, on Mar 6 2008, 18:37, said:

Sper sa te ajute:

Option Explicit

Dim isInitialized As Boolean
Dim sht As Worksheet
Dim rangeToCheck(0 To 13) As Range

Private Sub Initialize()
 If Not isInitialized Then
   ' Set the range array
   Set sht = ActiveWorkbook.ActiveSheet
   Set rangeToCheck(0) = sht.Range("BG5")
   Set rangeToCheck(1) = sht.Range("BM5")
   Set rangeToCheck(2) = sht.Range("V8")
   Set rangeToCheck(3) = sht.Range("AG8")
   Set rangeToCheck(4) = sht.Range("AT8")
   Set rangeToCheck(5) = sht.Range("BN8")
   Set rangeToCheck(6) = sht.Range("V10")
   Set rangeToCheck(7) = sht.Range("AG10")
   Set rangeToCheck(8) = sht.Range("AT10")
   Set rangeToCheck(9) = sht.Range("BN10")
   Set rangeToCheck(10) = sht.Range("B38")
   Set rangeToCheck(11) = sht.Range("D38")
   Set rangeToCheck(12) = sht.Range("I38")
   Set rangeToCheck(13) = sht.Range("AH38")
 End If
End Sub

Private Sub Workbook_BeforeClose(Cancel As Boolean)
 Dim i As Integer
 Dim isSomethingMissing As Boolean

 Call Initialize

 For i = LBound(rangeToCheck) To UBound(rangeToCheck)
   rangeToCheck(i).Select

   If Trim$(rangeToCheck(i).Value) = "" Then
	  ' Insert visual signal
	  With Selection.Interior
		 .ColorIndex = 38
		 .Pattern = xlSolid
	  End With

	  If (isSomethingMissing = False) Then
		 isSomethingMissing = True
	  End If
   Else
	  ' Remove visual signal if above condition is not met
	  If (Selection.Interior.ColorIndex = 38) Then
		 Selection.Interior.ColorIndex = xlNone
	  End If
   End If
 Next

 If isSomethingMissing Then
   ' Warn user
   Beep
   MsgBox "Please fill in the required information (magenta colored cells)!", vbExclamation, "Required information"
 End If

 ' Cancel closing if needed
 Cancel = isSomethingMissing
End Sub


Foarte fain, super util acest macro.

Crezi ca se poate personaliza avizul acustic din comanda de mai jos?

(If isSomethingMissing Then
' Warn user
Beep
MsgBox "Please fill in the required information (magenta colored cells)!", vbExclamation, "Required information"
End If)

adica in loc de "Beep" sa-i asociez un alt sunet

oricum este excelent si asa
  
multumesc frumos

#10
maro158

maro158

    Member

  • Grup: Members
  • Posts: 269
  • Înscris: 01.10.2007

View Postionel.sat, on Mar 7 2008, 11:18, said:

Crezi ca se poate personaliza avizul acustic din comanda de mai jos?

Eu nu m-as incurca... Dar, ma rog:

'La nivel de modul
Private Declare Function PlaySoundA Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal strFisierWav As String, ByVal lngFlags As Long) As Long

Private Const SND_ASYNC = &H1

' Apelezi procedura asta din codul de verificare
Public Sub PlayWav(strWavFile As String)
   If Dir(strWavFile) <> "" Then Call PlaySoundA(strWavFile, SND_ASYNC)
End Sub

Edited by maro158, 07 March 2008 - 12:38.


#11
ionel.sat

ionel.sat

    Member

  • Grup: Members
  • Posts: 815
  • Înscris: 26.11.2005

View Postmaro158, on Mar 7 2008, 13:36, said:

Eu nu m-as incurca... Dar, ma rog:

'La nivel de modul
Private Declare Function PlaySoundA Lib "winmm.dll" Alias "sndPlaySoundA" (ByVal strFisierWav As String, ByVal lngFlags As Long) As Long

Private Const SND_ASYNC = &H1

' Apelezi procedura asta din codul de verificare
Public Sub PlayWav(strWavFile As String)
   If Dir(strWavFile) <> "" Then Call PlaySoundA(strWavFile, SND_ASYNC)
End Sub

multumesc mult, o sa incerc si varianta asta.

raman dator

Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate