Forum

Forum (https://www.ms-office.gr/forum/)
-   Excel - Ερωτήσεις / Απαντήσεις (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/)
-   -   [Μορφοποίηση] Πρόβλημα με την αναζήτηση. (https://www.ms-office.gr/forum/excel-erotiseis-apantiseis/5262-problima-me-tin-anazitisi.html)

ΔΗΜΗΤΡΙΟΣ 03-06-19 07:57

Πρόβλημα με την αναζήτηση.
 
1 Συνημμένο(α)
Η αωαζήτηση δεν βρίσκει ένα συγκεκριμμένο τμήμα μιάς καταχώρησης.

Spirosgr 03-06-19 10:45

Δεν γνωρίζω την μακροεντολή που σου δίνει τα αποτελέσματα (strings)
στην στήλη Α, αλλά τα Ε (και πιθανό τα Α ή και άλλοι χαρακτήρες που ζητάς)
είναι Αγγλικά, και όχι Ελληνικά.

Δεν είναι δυνατόν να βρεί ΛΑΕ στα Ελληνικά, αν το string είναι ΛΑΕ, με Ε λατινικό...

Σε πρώτη φάση τσέκαρε αυτό...

Σε δεύτερη, χρησιμοποίησε την ρουτίνα:
Κώδικας:

Sub FindStr()
    Dim rng        As Range
    Dim c          As Range
    Dim lrow        As Long
    Dim iFound      As Byte
    Dim tSearch    As String

    lrow = Sheet1.Cells(Rows.Count, 1).End(xlUp).Row
    Set rng = Sheet1.Range("a1:a" & lrow)

    tSearch = Sheet1.Range("d1").Value

    rng.Interior.Color = xlNone
   
    For Each c In rng
        iFound = InStr(c.Value, tSearch)
        If iFound > 0 Then
            c.Interior.Color = vbYellow
        End If
    Next c
End Sub

είτε αυτόνομα είτε προσαρμόζοντας και ενσωματώνοντάς την στην υπάρχουσα
(εφ' όσον η υπάρχουσα, δεν έχει σφάλματα).

Σημειώσεις:
1. Στο κελί d1, πληκτρολογούμε το string που θέλουμε να αναζητήσουμε.
2. Όπου βρεθεί (να εμπεριέχεται), το κελί της Α στήλης γίνεται κίτρινο.
3. Οι παράμετροι της ρουτίνας μπορούν να αλλάξουν (περιοχή αναζήτησης, κελί αναζήτησης, χρώμα εμφάνισης)
4. Αν κάποιες Dim, υπάρχουν στην μακροεντολή που θα προσαρμόσετε την πιο πάνω ρουτίνα,
θα πρέπει να αλλάξουν.

ΔΗΜΗΤΡΙΟΣ 03-06-19 15:43

Πρόβλημα στην εύρεση
 
1 Συνημμένο(α)
Ευχαριστώ πολύ !

Spirosgr 03-06-19 16:23

3 Συνημμένο(α)
Έχεις κάποιες παρατηρήσεις μέσα στο βιβλίο σου.
Θα σου πω για την πρώτη, γιατί στις υπόλοιπες συμφωνούμε...

1.
«Αν με το εύρεση αντικατάσταση απαλείψω το , και τα κενά που είναι ανάμεσα στίς καταχωρίσεις και αναζητήσω το LHO από το κελί D1
τότε ο κώδικας δεν λειτουργεί.»

Απάντηση:
Λάθος, ο κώδικας λειτουργεί, και θα μαρκάρει όλα τα κελιά που περιέχουν LHO

Γενικά, ο κώδικας θα κάνει αυτό που πρέπει, αν ό,τι πληκτρολογήσουμε στ d1,
εμπεριέχεται στα κελιά της Α.

Εικόνες 1-3 λειτουργεί
Εικόνα 2, φυσικά και λειτουργεί, αλλά δεν βρίσκει «επαφή»

Μπορούμε να έχουμε και πληροφορία (msgbox) στον κώδικα για το τι βρήκε, αν βρήκε:

1
Βάζουμε μια μεταβλητή
Κώδικας:

Dim k          As Long
2
Ορίζουμε τη μεταβλητή ως μηδέν
Κώδικας:

k = 0
μετά το
Κώδικας:

rng.Interior.Color = xlNone
3
Μέσα στο loop και μέσα στο If, βάζουμε
Κώδικας:

k = k + 1
μετά το
Κώδικας:

c.Interior.Color = vbYellow
4
Τέλος μετά το
Κώδικας:

Next c
προσθέτουμε τις γραμμές
Κώδικας:

    If k = 0 Then
        MsgBox "Δεν βρέθηκαν τιμές"
    Else
        MsgBox "Βρέθηκαν " & k & " τιμές"
    End If


ΔΗΜΗΤΡΙΟΣ 03-06-19 16:46

Σωστά.
Λειτουργεί αφού τα γράμματα τα έκανα στα αγγλικά.
Με ελληνικά γράμματα δεν λειτουργεί.
Μήπως κάτι πάλι μου διαφεύγει;

Πάντως όπως και να έχει το πρόβλημα λύθηκε και σε ευχαριστώ πολύ !

Spirosgr 03-06-19 17:05

1 Συνημμένο(α)
Δουλεύει πάντα και με οποιαδήποτε γλώσσα.

Σημείωση

Βρίσκει το ΛΑΦ στο string ΚΛΑΦΗΟ
Αλλά δεν βρίσκει το ΛαΦ και
δεν θα βρεί και το ΛΆΦ (τα Ελληνικά έχουν και τονισμό) διότι είναι Case Sensitive.

Μήπως έχεις τέτοια θέματα;

ΔΗΜΗΤΡΙΟΣ 03-06-19 18:02

1 Συνημμένο(α)
Εδώ δεν λειτουργεί !

Spirosgr 03-06-19 19:25

1 Συνημμένο(α)
Λοιπόν,
για να μην το κουράζουμε άδικα, από την αρχή είπα, ότι δεν ξέρω αν ο κώδικας που έχεις
και φέρνει τα στοιχεία της Α, είναι σωστός.
Δεν ξέρω αν και η μετατροπή που κάνεις σε Ελληνικά, η διαδικασία δηλαδή
είναι αυτή που πρέπει...

Αποδεικνύεται στο βιβλίο, ότι έχεις λάθος.

Πως;

Δες το κελί Α8. Το τελευταίο δεξιά γράμμα είναι Ε. Αν δείς τη συνάρτηση δίπλα δείχνει 69.
Ο χαρακτήρας 69 λοιπόν είναι λατινικό Ε...

Ανάλογα, θα υπάρχουν κι άλλα λάθη σε άλλα φωνήεντα ή και Ρ (R) αλλά δεν το έψαξα.
Αυτά._

ΔΗΜΗΤΡΙΟΣ 03-06-19 22:00

Σε ευχαριστώ παρα πολυ!
Με κάλυψες πληρως.
Συγνωμη που σε ζαλισα.
Να εισαι παντα καλά!


Η ώρα είναι 08:54.

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


Search Engine Optimization by vBSEO 3.3.2