PDA

View Full Version : [Excel - Macro] Dimenticanza Su Ciclo Do-While


Holy_Bible
25-08-2009, 11:57
Ciao a tutti, Vi ringrazio gia per l'aiuto che mi date sempre :P

Ho necessità di creare una macro di Excel (Per esercizio) che effettui una scansione dei valori presenti in una colonna (Colonna C ) da index = 2 in giu, vorrei che il ciclo alla presenza di un certo valore "Roma Fiumicino" Selezioni l'intera riga e passi alla successiva effettuando il controllo ed in caso selezionandola o meno per passare alla prossima, alla fine vorrei avere tutte le caselle "Roma Fiumicino" Selezionate in modo da poterle incollare in un'altro Foglio di lavoro.

L'esercizio se puo essere utile chiede:

Nelle celle delle colonne dalla a alla E a partire dalla riga 2 devono essere copiati i dati dei voli presenti nel foglio di lavoro "milano_malpensa" che hanno i valori della colonna "Destinazione" uguale a " Roma Fiumicino"

In Poche parole devo copiare dei determinati valori, da un foglio all'altro gli elementi che devo copiare sono contraddistinti dal termine "Roma Fiumicino" nella casella C.

Sperando possiate capire qualcosa nella mia confusione :doh:

grazie


Edit

Codice che gia ho scritto:

Sub macroAerei()

Dim MioWork As Workbook
Dim mioFoglio As Worksheet
Dim Nuovo As Worksheet
Dim index As Integer
Dim intestazione As Range
Dim intestazione2 As Range
Dim Miointervallo As Range

Set MioWork = Application.Workbooks("Orari_voli.xls.xlsx")
Set mioFoglio = MioWork.Worksheets("Milano-Malpensa")
index = 1
Set intestazione = mioFoglio.Range("1:1")
intestazione.Select
intestazione.Copy

Sheets.Add
ActiveSheet.Select
ActiveSheet.Name = "Milano-Roma"
Set Nuovo = MioWork.Worksheets("Milano-Roma")
index = 1
Set intestazione2 = Nuovo.Range("1:1")
intestazione2.Select
intestazione2.PasteSpecial clPasteAll

mioFoglio.Select
index = 2

Set Miointervallo = mioFoglio.Range("C2")
Do While Miointervallo.Select



End Sub


Come mi si presenta il foglio:
http://img198.imageshack.us/img198/427/excelj.th.jpg (http://img198.imageshack.us/i/excelj.jpg/)

Holy_Bible
26-08-2009, 09:43
Up

MarcoGG
27-08-2009, 11:09
Una soluzione possibile :

1. Con un semplice ciclo ( For i = 2 To ... ) interroghi la cella C delle righe dalla 2 in poi. Se il valore è quello giusto, il numero riga ( i ) viene aggiunto ad un array...

2. A ciclo finito basta prendere l'array, ciclarlo, e copiare/incollare nel foglio desiderato, una per volta, le righe che hanno indice uguale ai numeri contenuti nell'array stesso... ;)