Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [VBA] Τροποποίηση κώδικα inputbox (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/6307-tropopoiisi-kodika-inputbox.html)

Immortal 25-04-23 20:18

Τροποποίηση κώδικα inputbox
 
Καλησπέρα σε όλους.
Όσο ψάχνεις τόσο βρίσκεις, αλλά μέχρι ένα σημείο μπορώ να φτάσω μόνος.
Η συμβουλές και η βοήθειά σας πολύτιμες.
Στον παρακάτω κώδικα που βρήκα, τροποποίησα το μπλε κομμάτι ώστε να καθαρίζω κάποιες περιοχές. Βλέπω πως κάνει τον καθαρισμό, όμως θα ήθελα να το δουλέψω με κλειδωμένο το φύλλο INSERT DATA, μπορεί να γίνει αυτό;

Κώδικας:

Sub ClearContent()
Const pw = "MyPassword"
entrypw = InputBox("Confirm password", "Confirm")
If entrypw = pw Then
Sheets("INSERT DATA").Select
    Range( _
        "C4:AK53,AW4:AZ369,BB4:BF369,CD4:CD27,CG4:DO63" _
        ).Select
    Selection.ClearContents

Cancel = True
End If
End Sub


ChrisGT7 25-04-23 20:32

Καλησπέρα Νίκο,

Δοκίμασε τον παρακάτω κώδικα αν σε καλύπτει:
Κώδικας:

Sub ClearContent()
    Const pw = "MyPassword"
    entrypw = InputBox("Confirm password", "Confirm")
   
    If entrypw = pw Then
        With Sheets("INSERT DATA")
            .Select
            .Unprotect
            .Range("C4:AK53,AW4:AZ369,BB4:BF369,CD4:CD27,CG4:DO63").ClearContents
            .Protect
        End With
        Cancel = True
    End If
End Sub

Αν έχεις προστασία φύλλου με κωδικό, τότε μετά το Unprotect και Protect άσε ένα κενό και γράψε τον κωδικό του φύλλου μέσα σε "διπλά αυτάκια".

Immortal 25-04-23 20:52

Δουλεύει άψογα Χρήστο σε ευχαριστώ.
Να τολμήσω να ζητήσω κάτι ακόμη, επειδή είδα ότι έχεις αλλάξει το μπλε κομμάτι που έβαλα.
Έχω και το παρακάτω μέσα, το οποίο κάνω αντιγραφή και επικόλληση τιμών, φαντάζομαι τα καταλαβαίνεις. Επειδή όπως και το προηγούμενο είναι από καταγραφή μακροεντολών, υπάρχει διαφορά στην κατανόηση-ευκολία λειτουργίας του κώδικα;

Κώδικας:

    Sheets("INFO").Select
    Range("X3:X33").Select
    Selection.Copy
    Sheets("INFO").Select
    Range("T3").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

*Νομίζω το κατάφερα σαν το δικό σου Χρήστο.
Κώδικας:

    With Sheets("INFO")
      .Select
      .Range("X3:X33").Copy
      .Select
      .Range("T3").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False
    End With


**Ναι! Δουλεύει και φυσάει Χρήστο η πρότασή σου αλλά και η επέμβασή μου!
Ευχαριστώ για τον χρόνο σου. Καλό βράδυ

ChrisGT7 25-04-23 23:08

Νίκο,

Μπορείς να αφαιρέσεις και τελείως τα δύο Select στον τελευταίο σου κώδικα. Μ' αυτόν τον τρόπο, οι τιμές θα επικολλούνται χωρίς να ενεργοποιείται/επιλέγεται το φύλλο INFO.

Καλό βράδυ! :)

Immortal 26-04-23 07:05

Καλημέρα Χρήστο, έχω ενημερώσει το κομμάτι που πρότεινες, σε ευχαριστώ.
Καλή συνέχεια.


Η ώρα είναι 01:06.

Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.


Search Engine Optimization by vBSEO 3.3.2