ricerca2



  • ricerca2
    di Mauro (utente non iscritto) data: 06/09/2013 12:40:02

    Ciao a tutti, credevo di avere risolto, ma avevo sbagliato.
    Con il MsgBox volevo inserire il nominativo del cliente che trovo con b
    MsgBox "RISULTATO TROVATO IL CLIENTE E'" & b
    Mauro

     
    Option Explicit
    Sub CercaNomeCliente()
    Dim a As Integer
    Dim b As String
    Dim blnFound As Boolean
        For a = 2 To 1000
          If Foglio3.Cells(a, 2).Value = Foglio1.Cells(32, 3).Value Then ' cerco il numero di telefono
            b = Cells(a, 1).Value ' trovo il nominativo
            blnFound = True ''o = 1 o solo "blnfound"
            Exit For 
          End If
        Next a
        
        If Not blnFound Then
          MsgBox "Cliente NON Inserito"
        Else
          MsgBox "RISULTATO TROVATO IL CLIENTE E'" & b 'il b è il nominativo
        End If
    End Sub



  • di Grograman data: 06/09/2013 12:59:48

    A naso:
     
    Cambia:
     b = Cells(a, 1).Value 
    
    in
    
     b = Cells(a, 2).Value 'visto che la ricerca la fai con il valore della seconda colonna


  • ricerca2
    di Mauro (utente non iscritto) data: 06/09/2013 13:11:10

    Cosi non funziona, il nome è nella riga a colonna 1



  • di Grograman (utente non iscritto) data: 06/09/2013 13:19:21

    File di esempio allora, oggi sono molto pigro.


  • ricerca2
    di Mauro (utente non iscritto) data: 06/09/2013 13:52:23

    Ho allegato un file di esempio
    Mauro



  • di HarryBosch data: 06/09/2013 14:07:10

    Quando lavori su più fogli devi sempre tenere a mente che davanti al riferimento di cella va messo il riferimento del foglio, altrimenti viene preso il valore del foglio attivo al momento:
    b = Cells(a, 1).Value
    la variabile b assumerà il valore del foglio attivo! Mentre i tuoi dati sono sul Foglio3...
    Quindi:
    b = Foglio3.Cells(a, 1).Value

    Sotto una variante con il metodo Find:
     
    Sub CercaNomeCliente2()
        Dim telefono As Range
        Set telefono = Foglio3.Columns(2).Find(Foglio1.[c32])
        If Not telefono Is Nothing Then
            MsgBox "NUMERO CORRISPONDENTE A: " & vbCrLf & Foglio3.Cells(telefono.Row, 1)
        Else
            MsgBox "Cliente NON Inserito"
        End If
    End Sub


  • ricerca2
    di Mauro (utente non iscritto) data: 06/09/2013 14:34:14

    Grazie, mi era sfuggito
    Mauro


  • ricerca2
    di Mauro (utente non iscritto) data: 06/09/2013 14:39:19

    Perfetto



  • di Grograman data: 06/09/2013 14:44:06

    P.S. stai ancora usando il codename dei fogli! Spero tu sappia cosa comporta


  • ricerca2
    di Mauro (utente non iscritto) data: 06/09/2013 15:01:06

    Grograman, sinceramente no, che cos'è.



  • di Grograman data: 06/09/2013 15:26:16

    E' un pò più complesso di come lo dico ora, ma crea un file con 2 fogli.

    Non toccare niente e lancia il codice che ti posto.
    Poi rinomina il "Foglio2" in "cheneso" e rilancia il codice.

    Questo non esaurisce l'argomento, anzi a malapena lo introduce!


     
    Option Explicit
    Sub nomi()
    MsgBox "Nome: " & Foglio1.Name & " Codename: " & Foglio1.CodeName & vbCrLf _
          & "Nome: " & Foglio2.Name & " Codename: " & Foglio2.CodeName
    End Sub



  • di Grograman data: 06/09/2013 15:28:13

    Ah dimenticavo, poi sposta "cheneso" come primo foglio e lancia:
     
    Sub nomi2()
    MsgBox "Nome: " & Sheets(1).Name & " Codename: " & Sheets(1).CodeName & vbCrLf _
          & "Nome: " & Sheets(2).Name & " Codename: " & Sheets(2).CodeName
    End Sub
    



  • di HarryBosch data: 06/09/2013 15:47:41

    Bravo Grograman che hai ravvisato un errore frequente degli utenti, nel riferimento ai fogli della cartella, argomento che avevo dato per scontato visto il codice del nostro amico.

    Qualche giorno dovremmo fare una bella newsletter ^_^ proprio in merito a questo argomento:
    Sheets("nome_foglio")
    Sheets(index)
    Foglio1 'o nome assegnato da codname




  • di Grograman data: 06/09/2013 15:56:01



    In realtà non ci avevo fatto caso, ma siccome io come numero di defalut ho 1 foglio, al suo primo post "ricerca" ho lanciato la macro e mi ha giustamente bloccato su "Foglio3" con "variabile non definita".