Excel e gli applicativi Microsoft Office Conta valori con esclusione

Login Registrati
Stai vedendo 15 articoli - dal 26 a 40 (di 40 totali)
  • Autore
    Articoli
  • #1877 Score: 0 | Risposta

    thunder
    Partecipante
      i file allegati sono duplicati...ne basta uno per versione
      #1901 Score: 0 | Risposta

      albatros54
      Moderatore
        89 pts
        sono presenti nella colonna B in un unico ciclo e restituire
        non capisco che cosa  intendi , se nella colonna B del tuo file hai solo una Mela(saluto scossa), il ciclo verra effettuato una sola volta, se tu hai oltre la mela l a pera, il ciclo viene effettuato ,una prima volta per trovare mela ed una seconda volta per trovare pera, non puoi dirgli al VBA" senti prendi tutti i dati che ci sono nella colonna B e controlla CONTEMPORISTANTANEAMENTE 😳 se nel foglio file XXX li trovi.
        per quanto riguarda il conteggio delle celle vuote sostituisci nel codice che ti ho postato precedentemente , queste righe
         For Each c In sh.Range("c4").CurrentRegion
                                If IsEmpty(c) Then
                                    totale = totale
                                ElseIf InStr(c, vRicerca) = 0 Then
                                    totale = totale + 1
                                End If
        
                            Next

        Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

        #1903 Score: 0 | Risposta

        thunder
        Partecipante
          provo a rispiegarmi!
          Se apri il file test_1 ci sono 46 celle occupate da valori.
          Voglio sapere quanti valori ci sono dentro test_1 escludendo però, tutte le celle che contengono i valori della colonna B del file resoconto.
          In questo caso tutte le celle che contengono i valori "pere" e "mele"non voglio che vengano conteggiate . In test_1 ci sono 2 celle che contengono pere ed 1 mele. Mi aspetto quindi che il conteggio mi dia come risultato test_1 : 43
          #1904 Score: 0 | Risposta

          albatros54
          Moderatore
            89 pts
            In questo caso tutte le celle che contengono i valori “pere” e “mele“non voglio che vengano conteggiate . In test_1 ci sono 2 celle che contengono pere ed 1 mele. Mi aspetto quindi che il conteggio mi dia come risultato test_1 : 43

            Image and video hosting by TinyPic

            Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

            #1908 Score: 0 | Risposta

            thunder
            Partecipante
              cambiando approccio:
              cerco le celle che contengano il valore "pere" in test_1 e ne elimino il contenuto. Stessa cosa per "mele". Finiti i valori da "sostituire "nella colonna B, conto i valori. Può funzionare?
              #1930 Score: 0 | Risposta

              albatros54
              Moderatore
                89 pts
                Option Explicit
                Public Sub mRicerca()
                 
                 
                    Dim objFSO As Object
                    Dim objFolder As Object
                    Dim objFile As Object
                    Dim wk As Workbook
                    Dim sh As Worksheet
                    Dim shMe As Worksheet
                    Dim lUltRiga As Long
                    Dim c As Range
                    Dim totale As Integer
                    Dim cellepiene As Long
                    Dim dati As Long
                    Dim nomefile As String
                    Dim nomefoglio As String
                    Dim spath As String
                    Dim ultimariga As Long
                    Dim rng As Range
                    Dim cl As Range
                    spath = "C:\Users\Utente\Desktop\prova\cartella\" < << Da modificare
                    With Application
                        .ScreenUpdating = False
                    End With
                    Set shMe = Workbooks("resoconto_1.xlsm").Sheets("foglio1")
                    totale = 0
                    ultimariga = Cells(Rows.Count, 2).End(xlUp).Row
                    With shMe
                        lUltRiga = .Range( _
                                   "g" & .Rows.Count _
                                   ).End(xlUp).Row
                    End With
                    Set rng = shMe.Range(Cells(1, 2), Cells(ultimariga, 2))
                    Set objFSO = CreateObject("Scripting.FileSystemObject")
                    Set objFolder = objFSO.GetFolder(spath)
                    For Each objFile In objFolder.Files
                        Select Case LCase(Right(objFile.Name, 4))
                            Case ".xls", "xlsx", "xlsm"
                                Set wk = Workbooks.Open(objFile.Path)
                                For Each cl In rng
                                    For Each sh In wk.Worksheets
                                        lUltRiga = lUltRiga + 1
                                        For Each c In sh.Range("c4").CurrentRegion
                                            If InStr(c, cl) = 1 Then
                                                totale = totale + 1
                                            End If
                                        Next
                                        cellepiene = Application.WorksheetFunction.CountA(sh.Range("c4").CurrentRegion)
                                        dati = piene - totale
                                        nomefile = objFile.Name
                                        nomefoglio = sh.Name
                 
                                    Next
                                Next
                                shMe.Range("g" & lUltRiga).Value = nomefile
                                shMe.Range("h" & lUltRiga).Value = nomefoglio
                                shMe.Range("j" & lUltRiga).Value = dati
                                totale = 0
                                wk.Close
                                Set wk = Nothing
                        End Select
                    Next
                    With Application
                        .ScreenUpdating = True
                    End With
                 
                    Set c = Nothing
                    Set wk = Nothing
                    Set sh = Nothing
                    Set shMe = Nothing
                    Set objFile = Nothing
                    Set objFolder = Nothing
                    Set objFSO = Nothing
                 
                End Sub

                Image and video hosting by TinyPic
                incolla questo codice in un modulo e lo esegui

                Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

                #1934 Score: 0 | Risposta

                thunder
                Partecipante
                  Mi da errore di compilazione: variabile non definita su
                  dati = piene - totale
                  #1938 Score: 0 | Risposta

                  albatros54
                  Moderatore
                    89 pts

                    correggi la linea di codice con

                    dati = cellepiene - totale

                     
                    Image and video hosting by TinyPic

                    Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

                    #1943 Score: 0 | Risposta

                    thunder
                    Partecipante
                      mi da un altro errore "impossibile trovare il percorso"
                      Set objFolder = objFSO.GetFolder(sPath)
                      ho lasciato la stessa configurazione di partenza. I file da cercare in una cartella ed il file di resoconto in quella superiore. Ho cambiato il percorso dove avevi segnato
                      #1944 Score: 0 | Risposta

                      albatros54
                      Moderatore
                        89 pts

                        fai questa prova, perchè sicuramente è sbagliato il path, crea una Dir sul desktop "prova" apri questa Dir e inserisci il file "resoconto_1.xlsm", una volta copiato il file, dentro questa Dir crea un'altra Dir "cartella" e in questa Dir inserisci i file "test"..
                        esci e ti trovi sul desktop tasto dx sulla dir prova proprieta è copi il path,inseredo a questo path "..\prova\cartella\"
                        Image and video hosting by TinyPic

                        Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

                        #1945 Score: 0 | Risposta

                        thunder
                        Partecipante
                          avevi ragione. Prima manca un \ !
                          ora va ma non mi torna una cosa. Se voglio escludere "mele" la macro non conta tutti i valori "mele" e i valori  che iniziano con mele (melepluto).
                          Se però il contenuto della cella non inizia con la desinenza allora non viene escluso (es plutomele)
                          #1946 Score: 0 | Risposta

                          albatros54
                          Moderatore
                            89 pts

                            Image and video hosting by TinyPic

                            Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

                            #1963 Score: 0 | Risposta

                            thunder
                            Partecipante
                              ..sei cintura nera di pazienza.. Scherzi a parte se ci riesci ti ringrazio se no grazie comunque per il tempo che ci hai dedicato!
                              #1973 Score: 0 | Risposta

                              albatros54
                              Moderatore
                                89 pts
                                Se però il contenuto della cella non inizia con la desinenza allora non viene escluso (es plutomele
                                modifica la linea di codice cosi
                                 If (InStr(c, cl)) >= 1 Then
                                

                                Se voglio escludere “mele” la macro non conta tutti i valori “mele” e i valori che iniziano con mele (melepluto).

                                Non ho capito

                                 

                                Qual è il punto di avere gusti diversi, se non mostrare che i cervelli lavorano diversamente, che pensiamo diversamente?( Alan Turing)

                                #1982 Score: 0 | Risposta

                                thunder
                                Partecipante
                                  FUNZIONA!
                                  è perfetta sei un grande! Grazie
                                Login Registrati
                                Stai vedendo 15 articoli - dal 26 a 40 (di 40 totali)
                                Rispondi a: Conta valori con esclusione
                                Gli allegati sono permessi solo ad utenti REGISTRATI
                                Le tue informazioni: