Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - celle colorate
Forum - Visual Basic 6 - celle colorate

Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo
Avatar
trittico69 (Normal User)
Pro


Messaggi: 144
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 17:07
Giovedì, 08/04/2010
in una rubrica excel cercando un nome con”cerca” una volta trovato il nome si posso evidenziare in automatico più celle in corrispondenza del nome? Es: colora rosso da A1 ad A5 della riga del nome trovato e poi cercando il secondo nome la riga di prima ridiventa bianca e il rosso passa al nome successivo…

PM Quote
Avatar
davifumi89 (Normal User)
Rookie


Messaggi: 49
Iscritto: 09/03/2010

Segnala al moderatore
Postato alle 17:20
Giovedì, 08/04/2010
Stai utilizzando le macro VBA per farlo???

Cmq la funzione ke colora è:

Foglio1.Cells(riga, colonna).Interior.ColorIndex = qui metti il codice del colore (es: 2 per il bianco, 3 per il rosso)

Ultima modifica effettuata da davifumi89 il 08/04/2010 alle 17:21
PM Quote
Avatar
trittico69 (Normal User)
Pro


Messaggi: 144
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 19:00
Giovedì, 08/04/2010
non funziona...comunque non so se hai capito.... mi serve colorare la riga del nome trovato con cerca e trovando il nome successivo il primo dome deve ritornare bianco com'era prima e la riga dove si trova il secondo nome trovato deve diventare colorata

PM Quote
Avatar
RUDYX (Normal User)
Pro


Messaggi: 109
Iscritto: 08/04/2010

Segnala al moderatore
Postato alle 22:44
Giovedì, 08/04/2010
Ciao , potresti provare con questa sezione di codice
ovviamente dove c'è scritto "CASA" dovresti mettere il riferimento alla stringa da cercare, (anche con un Inputbox per. es.)
Se non ho capito male vuoi selezionare la riga intera o un gruppo di caselle , prova il codice poi magari mi fai sapere .........

       Cells.Find(What:="CASA", After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        False, SearchFormat:=False).Activate
        Rows(ActiveCell.Row & ":" & ActiveCell.Row).Select
        Selection.Interior.ColorIndex = 3

        If Range("AA1").Value <> ActiveCell.Row Then
         Range(Range("AA1").Value & ":" & Range("AA1").Value).Select
         Selection.Interior.ColorIndex = xlNone
         Cells.FindNext(After:=ActiveCell).Activate
         End If
         Cells.FindNext(After:=ActiveCell).Activate
        Range("AA1").FormulaR1C1 = ActiveCell.Row
        Range("AA2").FormulaR1C1 = ActiveCell.Column

PM Quote
Avatar
trittico69 (Normal User)
Pro


Messaggi: 144
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 3:11
Venerdì, 09/04/2010
non ho capito che stringa devo mettere al posto di casa...e il codice se va in visual basic o dove

PM Quote
Avatar
RUDYX (Normal User)
Pro


Messaggi: 109
Iscritto: 08/04/2010

Segnala al moderatore
Postato alle 17:29
Venerdì, 09/04/2010
Ok Ok ..........

Allora :
Dovresti prima aprire la cartella in Excel che ti interessa (sarebbe bene che tu ne facessi una copia .... non si sa mai!!!)

Poi dovresti andare nella sezione VBA , cioè da Excel -->  Strumenti - Macro - Visual Basic Editor,
qui dovresti inserire un Modulo

e copiarci tutto questo codice :

Sub Trova()
    Cells.Find(What:=Mid(Range("AA2").Value, 2), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        True, SearchFormat:=False).Activate
        Rows(ActiveCell.Row & ":" & ActiveCell.Row).Select
        Selection.Interior.ColorIndex = 3

        If Range("AA1").Value <> "" And Range("AA1").Value <> ActiveCell.Row Then
         Range(Range("AA1").Value & ":" & Range("AA1").Value).Select
         Selection.Interior.ColorIndex = xlNone
         Cells.FindNext(After:=ActiveCell).Activate
         End If
         Cells.FindNext(After:=ActiveCell).Activate
        Range("AA1").FormulaR1C1 = ActiveCell.Row
        'Range("AA2").FormulaR1C1 = ActiveCell.Column

End Sub
Sub RICORDA()
Dim STR As String
STR = InputBox("IMMETTERE LA STRINGA DA CERCARE")
Range("AA2").FormulaR1C1 = "X" & STR
Call Trova
End Sub


Poi in Excel dovresti creare 2 oggetti-forme (rettangoli o ovali vanno bene) cioè un qualcosa per poterci abbinare le sue Subroutines che hai appena inserito nel modulo

La 1°) si chiama Trova (che esegue effettivamente la ricerca)
La 2°) si chiama Ricorda (che serve a ricordare e a eventualmente a cambiare il testo da ricercare)

Infine esegui <<RICORDA>> ogni volta che vuoi inserire un testo da ricercare
e esegui <<TROVA>>  quante volte lo desideri.

Fammi sapere ...........................



Ultima modifica effettuata da RUDYX il 09/04/2010 alle 18:16
PM Quote
Avatar
trittico69 (Normal User)
Pro


Messaggi: 144
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 19:27
Venerdì, 09/04/2010
come si abinano le macro alle forme? mi dici passo passo...grazie

PM Quote
Avatar
trittico69 (Normal User)
Pro


Messaggi: 144
Iscritto: 02/04/2010

Segnala al moderatore
Postato alle 19:36
Venerdì, 09/04/2010
ci sono riuscito ma mi da errore 91 variabile oggetto o variabile del blocco with non impostata e mi evidenzia questo
Cells.Find(What:=Mid(Range("AA2").Value, 2), After:=ActiveCell, LookIn:=xlFormulas, LookAt _
        :=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
        True, SearchFormat:=False).Activate

PM Quote
Avatar
RUDYX (Normal User)
Pro


Messaggi: 109
Iscritto: 08/04/2010

Segnala al moderatore
Postato alle 21:58
Venerdì, 09/04/2010
Sei sicuro di aver messo la parte di CODICE in un modulo all'interno di un VBAProject nella cartella dove c'e la rubrica?

E poi come seconda cosa la stringa che hai evidenziato è unica , cioè non ci dovrebbero essere dei controlli di fine riga in mezzo (Return) .

PM Quote
Pagine: [ 1 2 3 4 5 ] Precedente | Prossimo