Valutazione 4.87/ 5 (100.00%) 5838 voti

Condividi:        

range selection con contatore

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

range selection con contatore

Postdi pascod » 04/01/13 15:02

Ciao Ragazzi,
dalla prima volta che ho avuto accesso a questo splendido forum ne ho fatti di passetti avanti col VBA.. e mi sta affascinando, Grazie.

sono di fronte ad un piccolo scoglio per una macro che sto formulando:
In questo passaggio desidero selezionare verso il basso un numero di celle, nella stessa colonna, che siano uguali ad un contatore:
Questa riga dice alla macro: vai su di tante righe quante sono le ripetizioni loop che hai fatto nel ciclo (variabile contatore carmelo) e poi selezionami un range che va dall'activecell alla terza cella, sempre sulla stessa colonna.

ActiveCell.Offset(-carmelo, 0).Range("a1:a3").Select

Dovrei sostituire quell' "a3" con un altro contatore che ho immesso nella Macro.. ma come si fa?

tale contatore cambia di volta in volta ed il range da selezionare varia di conseguenza.. devo legare le due cose.. come faccio??

Grazie
Pasquale
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Sponsor
 

Re: range selection con contatore

Postdi ricky53 » 04/01/13 15:11

Ciao,
se l'intervallo A1:A3 può essere maggiore allora prova con questo esempio
Codice: Seleziona tutto
    UR = Range("A" & Rows.Count).End(xlUp).Row
    ActiveCell.Offset(-Carmelo, 0).Range("A1:A" & UR).Select

La variabile "UR" tiene conto delle celle della colonna "A" contenenti valori e trova l'ultima riga avente valori

Al posto di "UR" puoi utilizzare il "TuoContatore":
Codice: Seleziona tutto
    ActiveCell.Offset(-Carmelo, 0).Range("A1:A" & TuoContatore).Select
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: range selection con contatore

Postdi pascod » 04/01/13 15:29

Grazie! ora lo testo subito!
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Re: range selection con contatore

Postdi pascod » 04/01/13 15:37

ascolta, (l'appetito vien mangiando...)
prima dell'istruzione mostrata,io sono già sull'activecell che mi interessa (l'ultima del ciclo) ma, al fine di poter agire col range uso un trucchetto cretino di andare sopra di "carmelo" righe e poi selezionarmi il range versoil basso.
come faccio a selezionare il range verso l'alto ? qual'è l'istruzione?

Grazie
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Re: range selection con contatore

Postdi ricky53 » 04/01/13 15:42

Ciao,
rispetto alla cella attiva tu quante righe vuoi selezionare?
Ossia: come calcoli le righe da selezionare, partendo dalla cella attiva verso l'alto?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: range selection con contatore

Postdi pascod » 04/01/13 15:46

la cella attiva è l'ultima cella del loop.
all'interno del loop ho messo un contatore.
da quell'ultima cella deve salire verso l'alto di "contatore" righe in maniera tale da selezionarmi solo quelle celle che hanno fatto parte di quel loop.
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Re: range selection con contatore

Postdi ricky53 » 04/01/13 16:07

Ciao,
il contatore è "Carmelo" ?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: range selection con contatore

Postdi pascod » 04/01/13 17:01

ciao,
è più facile se faccio così!
Codice: Seleziona tutto
Dim Titolo, Messaggio As Variant
Dim k As Long
Dim i As Long
Dim j As Long
Dim contatore As Long
Dim numero As Long
Dim Carmelo As Long

    Titolo = "Maschera inserimento Codice Expo"
    Messaggio = "Digita il Codice del Display"
    contenitore = InputBox(Messaggio, Titolo)
    Sheets("input expo").Select
    If contenitore <> "" Then
        numero = 15
        Do Until Cells(numero, 13) = ""
        numero = numero + 1
        Loop
        contatore = numero
        Cells(contatore, 10) = contenitore
       
        Carmelo = 1
               
        For i = 2 To 700
            Sheets("sheet1").Activate
            If Cells(i, 1) = contenitore Then
                Cells(i, 6).Select
                Selection.Copy
                Sheets("INPUT EXPO").Select
                Cells(contatore, 13).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Sheets("sheet1").Activate
                Cells(i, 7).Select
                Selection.Copy
                Sheets("INPUT EXPO").Select
                Cells(contatore, 15).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Sheets("sheet1").Activate
                Cells(i, 8).Select
                Selection.Copy
                Sheets("INPUT EXPO").Select
                Cells(contatore, 14).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Sheets("sheet1").Activate
                Cells(i, 9).Select
                Selection.Copy
                Sheets("INPUT EXPO").Select
                Cells(contatore, 16).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Sheets("sheet1").Activate
                Cells(i, 10).Select
                Selection.Copy
                Sheets("INPUT EXPO").Select
                Cells(contatore, 17).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
            Sheets("sheet1").Activate
                Cells(i, 12).Select
                Selection.Copy
                Sheets("INPUT EXPO").Select
                Cells(contatore, 27).Select
                Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
                :=False, Transpose:=False
               
                contatore = contatore + 1
                Carmelo = Carmelo + 1
                                                                               
            End If
        Next i
       
        Sheets("INPUT EXPO").Select
       
        Cells(contatore, 10).Select
       
        ActiveCell.Offset(-Carmelo, 0).Range("a1:a" & Carmelo).Select
                           
     End If
         
End Sub                     
           
   


dovrebbe essere Carmelo ma me ne conta uno in più rispetto al numero corretto di iterazioni :cry:
l'ho modificato è così mi esce... sempre col trucchetto dell'offset, ma mi esce!!! :-)
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Re: range selection con contatore

Postdi ricky53 » 04/01/13 17:14

Ciao,
perchè imposti Carmelo = 1 ?

Dovrebbe essere Carmelo = 0


. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
EDIT: Hai modificato il codice mentre ti rispondevo.

Cosa ha modificato?
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia

Re: range selection con contatore

Postdi pascod » 10/01/13 12:16

Scusa il ritardo... proprio Carmelo!!!

Grazie mille..

Giusto per la prox volta: come hai visto per modificare il range nella penultima istruzione della macro, ho dovuto usare offset perchè non trovavo un'istruzione che me lo permettesse di fare senza prima mettere offset all'activecell.

come avrei potuto fare altrimenti il Re Range??

Grazie
Office 2010 su Windows 7 Prof.
pascod
Utente Junior
 
Post: 42
Iscritto il: 03/01/12 09:54

Re: range selection con contatore

Postdi ricky53 » 10/01/13 12:29

Ciao,
a mia conoscenza è la soluzione buona ed unica in base a quanto ti occorre ...
non mi viene in mente un'altra soluzione.
Dice il vecchio saggio provare e riprovare è l'unica strada per imparare

Più chiara è la vostra spiegazione
Più immediata sarà la nostra soluzione


. . . . . . . . . .
S.O. W7; Office 2003-10-13-16
Avatar utente
ricky53
Utente Senior
 
Post: 4223
Iscritto il: 11/04/09 19:29
Località: Italia


Torna a Applicazioni Office Windows


Topic correlati a "range selection con contatore":


Chi c’è in linea

Visitano il forum: Nessuno e 11 ospiti