|
Rank: Member
Iscritto dal : 11/26/2009 Posts: 23
|
Scusate ma riesco a fare le macro solo con il registratore e sono in difficolta' per una cosa molto semplice: dopo essere andato ad una determinata cella (ha il suo nome definito) vorrei che la selezione salisse di una riga in alto (e' qui il problema...) e poi mi inserisse una riga intera. Con il registratore, spostandola in alto, prende il riferimento di quella cella e se dopo aggiungo nuove righe non funziona piu'....torna sempre a quella cella.... Scopiazzando qua e la' avevo provato a scrivere questo...ma non funziona. Dove sbaglio?
Sub Gas11_Ins_riga() ' ' Gas11_Ins_riga Macro ' inserisce una riga in fondo alla tabella per nuovo rifornimento ' ' Scelta rapida da tastiera: CTRL+MAIUSC+R ' Application.Goto Reference:="BUS_01" With ActiveCell.Offset(-1, 1) ActiveCell.Offset(0, 0).Selection.EntireRow.Insert End With End Sub
Grazie per l'aiuto in anticipo
|
|
|
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve non ho ben compreso il senso della domanda. Se tu hai assegnato un nome ad una cella, (es. alla cella A10 nome BUS_01) nel caso di inserimento di una nuova riga al di sopra della cella "nominata", verrà spostato anche il riferimento associato al nome. BUS_01 non sarà più riferita alla cella A10 ma alla cella A11 Cosa devi fare esattamente? saluti Giap
|
|
Rank: Member
Iscritto dal : 11/26/2009 Posts: 23
|
Vediamo se riesco a spiegarmi meglio......: se creo la macro con il registratore, mi esce questo: Sub Inserisci_Riga() ' ' Inserisci_Riga Macro ' ' Application.Goto Reference:="BUS_01" Range("A11").Select Selection.EntireRow.Insert End Sub Come puoi vedere, dopo essere andato alla cella "BUS_01" (Importante: che in questo momento si trova in A12) gli dico di salire di una riga, cosa accade? Accade che la selezione mi si sposta in A11, inserisce una riga e va bene. Il problema e' al volta successiva! Lui mi seleziona "BUS_01" (che nel frattempo si e' spostato in A13) e qui nasce il problema..... lui non mi sale in A12 come vorrei, ma torna in A11 (come da istruzione....) In poche parole devo sostituire nella macro il comando <Range("A11").Select> con un comando che gli dica di salire di una riga, senza altri riferimenti......... Spero di essere riuscito a spiegarmi....
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
salve prova con questa: Sub Insert_Row() Application.Goto Reference:="BUS_01" ActiveCell.Offset(-1, 0).EntireRow.Insert End Sub saluti Giap
|
|
Rank: Member
Iscritto dal : 11/26/2009 Posts: 23
|
Ok, ci siamo! Funziona! Grazie mille! Se volessi, dopo questa operazione, spostare la selezione una cella in alto (pronti per l'inserimento dei dati) basta che aggiunga un ulteriore ActiveCell.Offset(-1, 0) senza altri comandi? Ovvero, per capire definitivamente, il comando ActiveCell.Offset sposta la selezione (primo valore la riga, secondo valore la colonna) ?
|
|
Rank: AiutAmico
Iscritto dal : 5/29/2003 Posts: 1,694
|
grizzly ha scritto:Ok, ci siamo! Funziona! Grazie mille! Se volessi, dopo questa operazione, spostare la selezione una cella in alto (pronti per l'inserimento dei dati) basta che aggiunga un ulteriore ActiveCell.Offset(-1, 0) senza altri comandi? Ovvero, per capire definitivamente, il comando ActiveCell.Offset sposta la selezione (primo valore la riga, secondo valore la colonna) ? ActiveCell.Offset(-1, 0).Select saluti Giap
|
|
Guest |