Keresés

Új hozzászólás Aktív témák

  • Delila_1

    Topikgazda

    válasz apeelme #19570 üzenetére

    Jobb klikkel rákattintva megnézed, a kettő közül melyik a Calendar1. Azt meghagyod, a másikat törlöd.

    A makrók:

    Private Sub Calendar1_Click()
    If Selection.Column = 2 Then Cells(Selection.Row, 2) = Me.Calendar1.Value
    If Selection.Column = 3 Then Cells(Selection.Row, 3) = Me.Calendar1.Value
    End Sub

    Private Sub CommandButton1_Click()
    Me.Calendar1.Today
    Cells(Selection.Row, 2) = Me.Calendar1.Value
    End Sub

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Select Case Target.Column
    Case 2
    Me.Calendar1.Left = ActiveCell.Left + ActiveCell.Width + 2
    Me.Calendar1.Top = ActiveCell.Top + ActiveCell.Height
    Me.Calendar1.Visible = True
    Me.CommandButton1.Left = Me.Calendar1.Left
    Me.CommandButton1.Top = Me.Calendar1.Top + Me.Calendar1.Height
    Me.CommandButton1.Visible = True
    Case 3
    Me.Calendar1.Left = ActiveCell.Left + ActiveCell.Width + 2
    Me.Calendar1.Top = ActiveCell.Top + ActiveCell.Height
    Me.Calendar1.Visible = True
    Me.CommandButton1.Left = Me.Calendar1.Left
    Me.CommandButton1.Top = Me.Calendar1.Top + Me.Calendar1.Height
    Me.CommandButton1.Visible = True
    Case Else
    Me.Calendar1.Visible = False
    Me.CommandButton1.Visible = False
    End Select
    End Sub

    Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

  • Delila_1

    Topikgazda

    válasz apeelme #19605 üzenetére

    Ezen sajnos nem tudok változtatni, de ha már rákérdeztél, a lentebbi makrót leegyszerűsítheted. A 2. és 3. oszlophoz együttesen is meg lehet adni a naptár helyzetét.

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Select Case Target.Column
    Case 2, 3
    Me.Calendar1.Left = ActiveCell.Left + ActiveCell.Width + 2
    Me.Calendar1.Top = ActiveCell.Top + ActiveCell.Height
    Me.Calendar1.Visible = True
    Me.CommandButton1.Left = Me.Calendar1.Left
    Me.CommandButton1.Top = Me.Calendar1.Top + Me.Calendar1.Height
    Me.CommandButton1.Visible = True
    Case Else
    Me.Calendar1.Visible = False
    Me.CommandButton1.Visible = False
    End Select
    End Sub

    Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

  • Delila_1

    Topikgazda

    válasz apeelme #19609 üzenetére

    Nem tudom, mi a feladat, miket akarsz másolni, de van megoldás.
    A gomb használata a dátum beírásához szükségtelen, mivel a naptár Click eseménye beírja azt a megfelelő helyre. Ehelyett bevihetjük a másolást, ha az rendre a másolat helyétől azonos távolságra történik, de egy Select Case utasításban módosíthatjuk is. A lenti makró a kijelölt területet 1 sorral lentebb, és 3 oszloppal jobbra másolja.

    Private Sub CommandButton1_Click()
    Selection.Copy Cells(Selection.Row + 1, Selection.Column + 3)
    End Sub

    A gombnak mindig láthatónak kell lennie a másolás végrehajtásához, ezért a Worksheet_SelectionChange makró is változik.

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    Select Case Target.Column
    Case 2, 3
    Me.Calendar1.Left = ActiveCell.Left + ActiveCell.Width + 2
    Me.Calendar1.Top = ActiveCell.Top + ActiveCell.Height
    Me.Calendar1.Visible = True
    Me.CommandButton1.Top = Me.Calendar1.Top + Me.Calendar1.Height
    Me.CommandButton1.Left = Me.Calendar1.Left
    Case Else
    Me.CommandButton1.Top = ActiveCell.Top + ActiveCell.Height
    Me.CommandButton1.Left = ActiveCell.Left + ActiveCell.Width + 2
    Me.Calendar1.Visible = False
    End Select
    End Sub

    Írd le pontosan, milyen esetekben mit és hova akarsz másolni, akkor könnyebb segíteni.

    Programozó: hibás programok megírására és kijavítására kiképzett szakember. Többet ésszel, mint ész nélkül.

Új hozzászólás Aktív témák