Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

vba excel: contare sequenza caselle vuote (cruciverba)

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

vba excel: contare sequenza caselle vuote (cruciverba)

Postdi karug64 » 22/08/16 16:44

Salve a tutti.

Dovrei, tramite una macro vba di excel, contare gli spazi vuoti consecutivi presenti in una griglia sia in orizzontale che in verticale.

Ho una variabile "maxcol" che indica fino a dove devo controllare
Ho una variabile "maxrig" che indica per quante righe devo controllare

Quindi se maxcol=5 e maxrig=5 la mia griglia di controllo sarà composta da A1:E5.

Fatta questa premessa, all'interno della griglia ci sono dei caratteri "#" che delimitano righe e colonne.

La griglia inizia sempre da A1
Non vanno contate le sequenze composte da 1 sola casella libera.

In allegato uno schema di prova (compilato nella parte destra a mano) che andrebbe automatizzato.

Immagine

Pensate sia fattibile ?
Grazie
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22

Sponsor
 

Re: vba excel: contare sequenza caselle vuote (cruciverba)

Postdi Anthony47 » 22/08/16 23:34

Prova con questa macro:
Codice: Seleziona tutto
Dim cCelL, myNeXt As Long, i As Long, j As Long, k As Long, mYJSt As Long    'IN TEST AL MODULO
Sub kkk64()
Dim maxCol As Long, maxRig As Long
Dim maxI As Long, maxJ As Long
maxCol = 5
maxRig = 5
'
maxI = maxRig
maxJ = maxCol
For k = 1 To 2
    For i = 1 To maxI
        mYJSt = 0
        For j = 1 To maxJ
            If k = 1 Then cCelL = Cells(i, j).Value Else cCelL = Cells(j, i).Value
            If cCelL = "#" Then
                If j - mYJSt > 2 Then
                    RowComp
                End If
                mYJSt = j
            End If
        Next j
        If j - mYJSt > 2 Then
            RowComp
        End If
    Next i
maxJ = maxRig
maxI = maxCol
'
Next k
End Sub

Sub RowComp()
    myNeXt = Cells(Rows.Count, "Y").End(xlUp).Row + 1
    If myNeXt > 2 Then Cells(myNeXt, "Y") = Cells(myNeXt - 1, "Y") + 1 Else Cells(myNeXt, "Y") = 1
    If k = 1 Then Cells(myNeXt, "Z") = "O" Else Cells(myNeXt, "Z") = "V"
    If k = 1 Then Cells(myNeXt, "AA") = i Else Cells(myNeXt, "AA") = mYJSt + 1
    If k = 2 Then Cells(myNeXt, "AB") = j - 1
    If k = 2 Then Cells(myNeXt, "AC") = i
    If k = 1 Then Cells(myNeXt, "AC") = mYJSt + 1
    If k = 1 Then Cells(myNeXt, "AD") = j - 1
    Cells(myNeXt, "AE") = j - mYJSt - 1
End Sub

Ciao
Anthony
Win7 + Office 2010 Ita; Win 7 + Office 2013 Ita
Xp + Office 2003 Ita
E voi cosa usate? (per istruzioni vedere viewtopic.php?f=26&t=97449)
Avatar utente
Anthony47
Moderatore
 
Post: 13891
Iscritto il: 21/03/06 16:03
Località: Ivrea

Re: vba excel: contare sequenza caselle vuote (cruciverba)

Postdi karug64 » 23/08/16 00:33

Ovviamente funziona !!!!

Una macro per te banale .... ma Dio non voglia debba apportare qualche stupida modifica ...... più che vba sembra scritta in cinese !!!!!

Grazie .... e alla prossima
Office 2010
karug64
Utente Senior
 
Post: 580
Iscritto il: 20/11/11 21:22


Torna a Applicazioni Office Windows


Topic correlati a "vba excel: contare sequenza caselle vuote (cruciverba)":


Chi c’è in linea

Visitano il forum: Nessuno e 7 ospiti