Risultati da 1 a 10 di 10

Discussione: Modificare variabile di ricerca in una macro



  1. #1
    L'avatar di giugar
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Svizzera
    Età
    53
    Messaggi
    42
    Versione Office
    2013
    Mi Piace ricevuti
    1

    Modificare variabile di ricerca in una macro

    Buongiorno a tutti, In una UserForm ho una casella che mi esegue una ricerca in una ListBox. Riscontro un problema quando voglio modificare il paramentro di ricerca in relazione alla colonna. Questo paramentro viene modificato tramite una variabile che preleva il valore in una textbox.
    Purtroppo con questo codice Excel mi si blocca e devo forzare la chiusura di Excel che risulta bloccato.

    Vi propongo sotto il codice evidenziando le righe che mio danno l'errore.

    Codice: 
    Private Sub CommandButton20_Click()
    
    If TBcol = "" Then
    MsgBox "Non ha selezionato la colonna di ricerca", _
    vbCritical, Title:="'Seleziona la colonna di ricerca!"
    ComboBox1.SetFocus
    End If
    
    Dim Quanti, Cont, R
    Dim C As Integer
    C = TBcol
      ListBox10.MultiSelect = fmMultiSelectExtended   'inseriamo l'istruzione per impostare la possibilità di selezionare più righe insieme
          Quanti = ListBox10.ListCount - 1
              Cont = 0
                  For R = 0 To Quanti - 1
      If ListBox10.List(R, C) Like "*" & TextBox16 & "*" Then
          ListBox10.Selected(Cont) = True
      End If
          Cont = Cont + 1
              Next
                  MsgBox "FINE RICERCA"
    End Sub
    
    Dovendo eseguire la ricerca in più colonne della ListBox, la variabile C viene popolata in base al valore che preleva dalla TextBox "TBcol"... Pensavo fosse semplice impostarlo così, ma invece non funziona.

    Avete suggerimenti in merito?

    Con la speranza di essermi spiegato chiaramente, attendo fiducioso un vostro aiuto.
    Ultima modifica fatta da:alfrimpa; 14/10/16 alle 16:02

  2. #2
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    586
    Versione Office
    2010
    Mi Piace ricevuti
    72
    Mi Piace dati
    1

    Re: Modificare variabile di ricerca in una macro

    allega un file di esempio da testare

  3. #3
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    72
    Messaggi
    1389
    Versione Office
    Excel2007
    Mi Piace ricevuti
    349
    Mi Piace dati
    94

    Re: Modificare variabile di ricerca in una macro

    Ciao Giugar
    dopo aver salutato l'amico patel (ciao Andrea) ti faccio notare che, secondo me, il problema è qui
    Questo paramentro viene modificato tramite una variabile che preleva il valore in una textbox.
    Il "dato" prelevato da una TextBox è sempre una stringa mentre tu vorresti passarlo come Integer (meglio Long). Quindi correggi questa riga C = TBcol in questo modo C = CLng(TBcol)

    Prova e fai sapere.
    Ciao,
    Mario

  4. I seguenti utenti hanno dato un "Mi Piace"


  5. #4
    L'avatar di giugar
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Svizzera
    Età
    53
    Messaggi
    42
    Versione Office
    2013
    Mi Piace ricevuti
    1

    Re: Modificare variabile di ricerca in una macro

    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Il "dato" prelevato da una TextBox è sempre una stringa mentre tu vorresti passarlo come Integer (meglio Long). Quindi correggi questa riga C = TBcol in questo modo C = CLng(TBcol)
    Grazie Mario, adesso funziona.

    Potrei anche chiedervi se sapete dirmi come poter popolare la ListBox (e di conseguenza anche le combobox), unicamente limitandola al numero di righe presenti nel foglio di riferimento? Invece di indicare tutte le righe come faccio io:

    Private Sub UserForm_Initialize()
    ListBox10.RowSource = "A6:N1048576"

    Allego anche il file d'esempio
    File Allegati File Allegati

  6. #5
    L'avatar di giugar
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Svizzera
    Età
    53
    Messaggi
    42
    Versione Office
    2013
    Mi Piace ricevuti
    1

    Re: Modificare variabile di ricerca in una macro

    Citazione Originariamente Scritto da giugar Visualizza Messaggio
    Grazie Mario, adesso funziona.
    Allego anche il file d'esempio

    Ho cantato vittoria troppo presto.

    Se nella macro indico il numero della colonna da ricercare funziona.
    If ListBox10.List(R, 7) Like "*" & TextBox16 & "*" Then

    Se invece uso la variabile, mi si avvia un cuclo infinito e devo chiudere excel brutalmente.
    If ListBox10.List(R, C) Like "*" & TextBox16 & "*" Then

    Mi sapete dire perhcé?
    Grazie

  7. #6
    L'avatar di Marius44
    Clicca e Apri
    Data Registrazione
    Sep 2015
    Località
    Catania
    Età
    72
    Messaggi
    1389
    Versione Office
    Excel2007
    Mi Piace ricevuti
    349
    Mi Piace dati
    94

    Re: Modificare variabile di ricerca in una macro

    Ciao
    Come ha detto Patel, senza un file su cui lavorare facciamo gli indovini.
    Se il problema è evidente (vedi il caso della stringa con valore) è un conto, perchè entri in un loop ... infinito non lo so.

    Ciao,
    Mario

  8. #7
    L'avatar di giugar
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Svizzera
    Età
    53
    Messaggi
    42
    Versione Office
    2013
    Mi Piace ricevuti
    1

    Re: Modificare variabile di ricerca in una macro

    Citazione Originariamente Scritto da Marius44 Visualizza Messaggio
    Ciao
    Come ha detto Patel, senza un file su cui lavorare facciamo gli indovini.
    Se il problema è evidente (vedi il caso della stringa con valore) è un conto, perchè entri in un loop ... infinito non lo so.

    Ciao,
    Mario
    Il file l'ho allegato alla mia risposta precedente.

    Non lo vedi?

  9. #8
    L'avatar di giugar
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Svizzera
    Età
    53
    Messaggi
    42
    Versione Office
    2013
    Mi Piace ricevuti
    1

    Re: Modificare variabile di ricerca in una macro

    Ho fatto qualche passo avanti:

    1- Sono riuscito a popolare la ListBox limitandola alle righe compilate dal foglio in cui prelievo o dati.

    2- Con la lista limitata ai campi presenti nel foglio, anche la ricerca con la variabile nella macro funziona.

    Suppongo che il problema stava nel fatto che l'area della ricerca della ListBox era troppo ampia?
    Ma se continuo ad aggiungere righe, tornerà a presentarsi il problema.
    Ci sono alternative per eseguire ricerche con una macro meglio strutturata?

    Grazie ancora per il supporto

    Allego il file con le modifiche descritte sopra
    File Allegati File Allegati

  10. #9
    L'avatar di patel
    Clicca e Apri
    Data Registrazione
    Mar 2016
    Località
    Livorno
    Età
    71
    Messaggi
    586
    Versione Office
    2010
    Mi Piace ricevuti
    72
    Mi Piace dati
    1

    Re: Modificare variabile di ricerca in una macro

    Va bene allegare il file, ma occorre anche mostrare il codice perché i file dopo un certo tempo vengono eliminati.
    Partiamo da questo
    Codice: 
    Private Sub UserForm_Initialize()
    'Application.Visible = False
    Dim mydate As Date
    Dim mytime As String
    mydate = Date ' <<<<<<<<< inutile
    mytime = Time
    mydate = Format(mydate, "dd/mmmm/yyyy")
    TextBoxdata.Text = "Data:" & " " & mydate & " - " & "Ora:" & " " & mytime
    Dim X, Y
    Sheets("ARCHIVIO_RIAZZINO").Select
    ActiveSheet.Unprotect
    X = Range("A6").CurrentRegion.Rows.Count + 6
    Y = Range("A6").CurrentRegion.Columns.Count
    area = Range(Cells(6, 1), Cells(X, Y)).Address
    ListBox10.RowSource = area
    ActiveSheet.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    Sheets("ARCHIVIO_RIAZZINO").Select ' <<<<<<<<< inutile
    ListBox10.Value = Null '' <<<<<<<<< inutile
    Sheets("ARCHIVIO_RIAZZINO").Select' <<<<<<<<< inutile
    ListBox10.RowSource = "A6:N20"' <<<<<<<<< inutile
    Range("A1").Select
    
    ComboBox1.AddItem "File Folder Code"
    ComboBox1.AddItem "Department"
    ComboBox1.AddItem "Job N°"
    ComboBox1.AddItem "Commessa N°"
    ComboBox1.AddItem "Project"
    ComboBox1.AddItem "Client"
    ComboBox1.AddItem "Country"
    ComboBox1.AddItem "Description"
    ComboBox1.AddItem "Date"
    ComboBox1.AddItem "Turbine Type"
    ComboBox1.AddItem "Add Date"
    
    Menu.Controls("ComboBoxprelievo").RowSource = "utenti!A1:A300"
    Menu.Controls("ComboBoxrientro").RowSource = "utenti!A1:A300"
    End Sub
    Non ha senso popolare la lisbox con
    Codice: 
    area = Range(Cells(6, 1), Cells(X, Y)).Address
    ListBox10.RowSource = area
    e subito dopo cancellarla e ripopolarla con
    Codice: 
    ListBox10.RowSource = "A6:N20"
    per quanto riguarda la ricerca non ho capito la strategia che hai usato per farla, io però non farei la ricerca sulla listbox ma sulla tabella nel foglio utilizzando il metodo find, molto piu veloce di un loop

  11. #10
    L'avatar di giugar
    Clicca e Apri
    Data Registrazione
    Oct 2016
    Località
    Svizzera
    Età
    53
    Messaggi
    42
    Versione Office
    2013
    Mi Piace ricevuti
    1

    Re: Modificare variabile di ricerca in una macro

    Grazie per i suggerimenti Patel.

    Codice: 
    ListBox10.RowSource = "A6:N20"
    Questa riga era solo un test che mi é rimasta nel codice.

    Grazie a tutti per l'ottimo supporto.

Discussioni Simili

  1. [Risolto] Aiuto per modificare/migliorare una Macro su Excel
    Di indaco nel forum Domande su Excel VBA e MACRO
    Risposte: 41
    Ultimo Messaggio: 09/12/16, 11:45
  2. Modificare composizione macro
    Di PALLAS0TTO nel forum Domande su Excel VBA e MACRO
    Risposte: 6
    Ultimo Messaggio: 07/07/16, 18:28
  3. Modificare macro Sorteggio
    Di roky48 nel forum Domande su Excel VBA e MACRO
    Risposte: 14
    Ultimo Messaggio: 02/05/16, 13:39
  4. macro per modificare contenuto altre macro.
    Di nessi nel forum Domande su Excel VBA e MACRO
    Risposte: 4
    Ultimo Messaggio: 15/04/16, 15:53
  5. vba, cerca.vert con campo ricerca variabile
    Di tanimon nel forum Domande su Excel VBA e MACRO
    Risposte: 9
    Ultimo Messaggio: 21/12/15, 22:38

Tag per Questa Discussione

Permessi di Scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •