Excel e gli applicativi Microsoft Office Cerca Verticale con VBA

Login Registrati
Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
  • Autore
    Articoli
  • #3537 Score: 0 | Risposta

    PDA
    Partecipante
      Ciao a tutti,
      nel file in allegato sto cercando di far funzionare il cerca verticale nella colonna AB del foglio PREZZI se non è vuota la corrispondente cella della colonna AG.
      Ma si genera solo uno degli IF che ho impostato:
       
      Option Explicit
      
      Sub CercaScaduti() 'con questa macro riporto le formule nella colonna AB del foglio PREZZI, cioè nel campo Scaduti
          
          Dim WB As Workbook
          Dim Rng As Variant
          Dim Shc1 As Worksheet
          Dim uR As Long
          Dim Riga As Long
          
          Set WB = ActiveWorkbook
          Set Shc1 = WB.Sheets("PREZZI")
          
          Riga = 7
      
      uR = Shc1.Range("G" & Rows.Count).End(xlUp).Row
      
      Set Rng = Foglio1.Range(Foglio1.Cells(Riga, 28), Foglio1.Cells(uR, 28)) 'Foglio PREZZI colonna AB Scaduti
      
       On Error Resume Next
      If Not (Foglio1.Cells(Riga, 33) = Empty) And (Riga < = 200) Then
                                      Rng.FormulaLocal = "=SE.ERRORE(CERCA.VERT($G$8:$G$200;'DATI CREDITI'!A:U;13;FALSO);0)"
                                      ElseIf Not (Foglio1.Cells(Riga, 33) <> Empty) And (Riga < = 200) Then
                                      Rng.FormulaLocal = "0"
                                      Else
                                      End If
      
      End With
      Riga = Riga + 1
      
      End Sub
      

      Qualcuno potrebbe aiutarmi a capirne il motivo?

      Grazie mille.

      Saluti,

      PDA

      Allegati:
      You must be logged in to view attached files.
      #3539 Score: 0 | Risposta

      patel
      Moderatore
        51 pts
        Dovresti spiegare cosa vuoi ottenere e perché tramite formule e non via codice
        #3540 Score: 0 | Risposta

        PDA
        Partecipante
          Ciao Patel,
          grazie per il veloce riscontro.
          In pratica mi occorre che se nella colonna AG NON è presente la X, allora nella colonna AB non ci sarà il cerca verticale, che mi occorre per una funzionalità più complessa dell'intero file.
           
          Grazie mille.
           
          Saluti,
          PDA 
          #3541 Score: 0 | Risposta

          PDA
          Partecipante
            Ciao ancora Patel,
            in effetti a me serve che per alcuni codici clienti presenti nel foglio PREZZI non sia inviata l'informazione relativa all'importo da pagare (che il cerca verticale nella colonna AB preleva dal foglio DATI CREDITI).
            L'unica soluzione che mi è venuta in mente è creare una colonna d'appoggio (la AG nel foglio PREZZI) ed inserendo in essa una X, così laddove invece non c'è, pongo zero.
            Ma se a te dovesse venire in mente un'altra soluzione, tanto meglio.
             
            Grazie mille.
             
            Saluti,
            PDA
            #3543 Score: 0 | Risposta

            albatros54
            Moderatore
              89 pts
              Prova cosi,se ho capito 
              Option Explicit
              
              Sub CercaScaduti()    'con questa macro riporto le formule nella colonna AB del foglio PREZZI, cioè nel campo Scaduti
              
                  Dim WB As Workbook
                  Dim Rng As Variant, Rng1 As Range, cl As Range
                  Dim Shc1 As Worksheet
                  Dim uR As Long
                  Dim Riga As Long
              
                  Set WB = ActiveWorkbook
                  Set Shc1 = WB.Sheets("PREZZI")
              
                  Riga = 7
              
                  uR = Shc1.Range("G" & Rows.Count).End(xlUp).Row
              
                  Set Rng = Foglio1.Range(Foglio1.Cells(Riga, 28), Foglio1.Cells(uR, 28))    'Foglio PREZZI colonna AB Scaduti
                  Set Rng1 = Foglio1.Range(Foglio1.Cells(Riga, 33), Foglio1.Cells(uR, 33))    'Foglio PREZZI colonna AG
                  
                  On Error Resume Next
                  For Each cl In Rng
                      If (Foglio1.Cells(Riga, 33) = "X") And (Riga < = 200) Then
                          cl.FormulaLocal = "=SE.ERRORE(CERCA.VERT($G$8:$G$200;'DATI CREDITI'!A:U;13;FALSO);0)"
                        
                      Else
                          cl.FormulaLocal = "0"
              
                      End If
                      
                      Riga = Riga + 1
                  Next
                  
              End Sub
              
               
              Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente? ( Alan Turing) Sempre il mare, uomo libero, amerai! ( Charles Baudelaire )
              #3544 Score: 0 | Risposta

              PDA
              Partecipante
                Grande Albatros54, perfetto!
                Grazie mille.
                Risolvo la discussione.
                Spero di ritrovarti presto.
                 
                Saluti,
                PDA
              Login Registrati
              Stai vedendo 6 articoli - dal 1 a 6 (di 6 totali)
              Rispondi a: Cerca Verticale con VBA
              Gli allegati sono permessi solo ad utenti REGISTRATI
              Le tue informazioni: