|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Junior Member
Iscritto dal: Nov 2009
Messaggi: 7
|
Routine di visual basic excel 2002
Salve a tutti. Sono nuovo del forum (come utilizzatore ma non come frequentatore) e vorrei sottoporre a qualche esperto di voi (es.: MarcoGG) un mio problema.
Ho un foglio di lavoro Excel 2002 così composto Colonna A Colonna B Colonna C Colonna D Colonna E Colonna F Nome Cognome via Indirizzo1 Indirizzo 2 Campo chiave * Le righe ovviamente sono parecchie (alcune centinaia) e il campo chiave è dato dalle sigle del campo Nome e Cognome (concatena(stringa.estrai(sinistra(colA;1);stringa.estrai(sinistraColB;1). In pratica la routine deve scorrere le celle della colonna F Campo Chiave. Ogni qual volta le celle di F sono uguali consecutivamente 5 volte, deve copiare e incollare i dati del range A1:Exx (dove xx è l'ultima cella che soddisfa il controllo) in un foglio di lavoro che chiamerò foglio 1, in cui sono presenti 5 layout di etichetta vuoti e predefiniti. Ogni volta che l'ultima cella analizzata di F è diversa dalla precedente, dovrà copiare e incollare i dati in un altro foglio che chiamerò foglio 2 con altri 5 tipi diversi di etichette, e così via alternativamente. Infine se l'intervallo di celle uguali è inferiore a 5 dovrà copiare solo le il range che soddisferà il controllo (es.: 3 righe) nel foglio etichette lasciando vuote le altre in eccedenza. Mi spiego Riga Colonna F 1 AA 2 AA 3 AA 4 AA 5 AA 6 AB 7 AB 8 AC Le celle da riga 1 a 5 sono uguali quindi copia e incolla da 1 a 5 su foglio 1 Le righe da 6 a 7 sono uguali ma diverse dalla riga 5 quindi copia e incolla da 6 a 7 sul foglio 2 e lascia vuote 3 etichette La riga 8 è diversa dalla 7 e quindi copia e incolla su foglio 1 e lascia vuote 4 etichette e così via. I fogli 1 e 2 vanno usati alternativamente, una volta l'uno una volta l'altro. AIUTOOOOOOO!!!! ![]() ![]() Ho provato con select case ma finora ciccia! Vi prego aiutatemi! |
![]() |
![]() |
![]() |
#2 |
Junior Member
Iscritto dal: Nov 2009
Messaggi: 7
|
Routine di visual basic 2002
Allora, mi sono stupito di mé stesso, ma devo dire che alla fine ho risolto al 75%.
La routine che riesce a controllare il campo chiave funziona se elimino man mano le righe interessate dopo il loop. La routine è la seguente (per altro una kazzata) ![]() Sub Start() §col = 38 §rigap = 2 Cells(§rigap, §col).Select §rigas = §rigap + 1 i = 1 If Cells(§rigap, §col) = "" Then GoTo Fine Do While Cells(§rigap, 38).Value = Cells(§rigas, 38).Value And §rigas < 7 §rigap = §rigap + 1 §rigas = §rigas + 1 Cells(§rigas, 38).Select i = i + 1 Loop Select Case i Case 5 Rows("2:6").Select Selection.Delete Shift:=xlUp Case 4 Rows("2:5").Select Selection.Delete Shift:=xlUp Case 3 Rows("2:4").Select Selection.Delete Shift:=xlUp Case 2 Rows("2:3").Select Selection.Delete Shift:=xlUp Case 1 Rows("2:2").Select Selection.Delete Shift:=xlUp Fine: End End Select End Sub Adesso però mi sono arenato di nuovo su come dire al programma di usare una volta un foglio una volta un altro per il layout di stampa ![]() Moderatori e senior member fatevi avanti! |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 07:21.