Autore Topic: MODIFICA MACRO  (Letto 317 volte)

0 Utenti e 1 Visitatore stanno visualizzando questo topic.

Offline wildstar

  • Newbie
  • Post: 28
  • Karma: +0/-0
MODIFICA MACRO
« il: Luglio 26, 2011, 12:47:37 am »
CIAO!!!
Ho la sequente macro di excell ottenuta da un altro foglio che inserisce un valore predefinito nelle celle che corrisponde alla differenza tra due date. Dopo aver apportato le modifiche per i miei scopi la macro funziona correttemente il problema e che nel range della riga dove io voglio che venga inserito il valore predefinito le celle sono unite a coppia, esempio "A1" è unita con "B1" a formare un unica cella; la macro non riconosce questa unione è inserisce il valore predifinito come se le celle fossero divise pur non intaccando la formattazione delle celle interessate. Faccio un esempio, se la differenza tra due date è 10 giorni quando eseguo la macro inserisce il valore predefinito in cinque celle, nel mio caso coppie di celle unite mentre nelle restanti celle rimangono vuote!!! Come posso modicare la macro per ovviare a questo fastidioso problema???
Sto cercando di crearmi un foglio excel  che soddisfi le mie esigenze per la gestione dei turni dove lavoro, la macro sotto indicata inserisce le ferie date l'inizio e la fine di tale periodo!!!
Grazie a chi riesce a risolvermi questo problemino!!! :D :D :D :D :D
"Sub Ferie_1()
Dim dmes(1 To 12)
Dim dDat1 As Date
Dim dDat2 As Date
Dim dDat0, mMes1, mMes2, dDay1, dDay2
mm = 0
ff = 0
riga = Cells(Rows.Count, 1).End(xlUp).Row
Set elenco = Range("A6:A" & riga)
Application.ScreenUpdating = False
For y = 1 To 12
  dmes(y) = Cells(y + 3, 17)
Next y
For X = 192 To 206
  nome = Cells(X, 1)
  If nome = "" Then Exit For
  dDat1 = Cells(X, 21)
  dDat2 = Cells(X, 26)
  dDat0 = (dDat2 - dDat1) + 1
  mMes1 = Month(dDat1)
  mMes2 = Month(dDat2)
  dDay1 = Day(dDat1)
  dDay2 = Day(dDat2)
  For Each cl In elenco
    If dDat1 = 0 Then Exit For
    If nome = cl.Value Then mm = mm + 1
    If mm = mMes1 Then
      Application.EnableEvents = False
      rig = cl.Row
      For y = 1 To dDat0
        Cells(rig, y + dDay1) = "F"
        Cells(rig, y + dDay1).Interior.ColorIndex = 0
        If y + dDay1 = dmes(mMes1) + 1 Then
          rig = rig + 23
          s = dDat0 - y
          dDay1 = 1
          For Z = 1 To s
            Cells(rig, Z + dDay1) = "F"
            Cells(rig, Z + dDay1).Interior.ColorIndex = 0
          Next Z
          y = dDat0
        End If
      Next y
      Application.EnableEvents = True
      Exit For
    End If
  Next cl
  mm = 0
Next X
Application.ScreenUpdating = True
MsgBox "Inserimento periodo Ferie effettuato", , "inserimento dati"
Cells(1, 1).Select
End Sub"

Offline T3STY

  • Gold Member
  • *****
  • Post: 2601
  • Karma: +0/-0
  • Che sparate stai minchiando?
Re: MODIFICA MACRO
« Risposta #1 il: Luglio 27, 2011, 01:56:42 am »
Non me ne intendo molto di macro, ma hai provato unendo le celle prima dell'esecuzione dello script?