incrementare alfanumerici con trascinamento cella
Hai un problema con Excel? 
incrementare alfanumerici con trascinamento cella
di Alasque data: 12/07/2013 15:14:53
Ciao a Tutti,
trascinando ina cella che contiene un numero le celle che seguono vengono incrementate. come faccio a farlo con valori alfanumerici? esempio: se ho AA come faccio a rendere automaticamente AB la seconda ed AC la terza e così via?
Grazie
di Vecchio Frac data: 12/07/2013 18:51:43
A occhio e croce, solo se prima hai stabilito un elenco: quando trascini un elemento dell'elenco, seguono gli altri.
Così avviene, per esempio, con i giorni della settimana e i nomi dei mesi (sono due elenchi predefiniti).
di paolomath data: 15/07/2013 09:34:11
Oppure ricorrere ad un po' di codice...
Seleziona la colonna che ti interessa.
Questa arriva fino ad CZ, divertiti un po' se ti va.
Bye
Sub Prova()
For i = 0 To Selection.Count - 1
Select Case 65 + i
Case Is < 91
Cells(Selection.Row + i, Selection.Column) = Chr(i + 65)
Case Is < 117
Cells(Selection.Row + i, Selection.Column) = "A" & Chr(i + 39)
Case Is < 143
Cells(Selection.Row + i, Selection.Column) = "B" & Chr(i + 13)
Case Is < 169
Cells(Selection.Row + i, Selection.Column) = "C" & Chr(i - 13)
End Select
Next
End Sub |
di paolomath data: 15/07/2013 10:14:02
Questa è un po' più compatta e ariva a ZZ
Bye.
For i = 0 To Selection.Count - 1
Select Case i
Case Is < 26
Cells(Selection.Row + i, Selection.Column) = Chr(65 + (i Mod 26))
Case Is < 676
Cells(Selection.Row + i, Selection.Column) = Chr(65 + (i 26)) & Chr(65 + (i Mod 26))
End Select
Next |
di HarryBosch data: 15/07/2013 10:41:09
Ciao Ragazzi,
propongo anch'io una soluzione, tramite l'utilizzo di una UDF, con il seguente utilizzo:
- inserire il gruppo di partenza in una cella qualsiasi (AA o altro gruppo di due lettere)
- nella cella sottostante richiamare la funzione con riferimento alla cella (soprastante)
- trascinare in basso la formula
La funzione va dal gruppo AA al gruppo ZZ.
Esempio pratico:
- in A1 scrivere il gruppo di partenza: AA
- nelle cella A2 riportare la funzione: =udf_IncrAlfaNum(A1)
- trascinare la formula in basso
Function udf_IncrAlfaNum(Gruppo_Inizio As Range)
Dim s As String, a As String, b As String
s = UCase(Gruppo_Inizio.Value)
Select Case Asc(Right(s, 1)) + 1
Case 91
a = Chr(Asc(Mid(s, 1)) + 1)
b = "A"
Case Else
a = Mid(s, 1, 1)
b = Chr(Asc(Right(s, 1)) + 1)
End Select
udf_IncrAlfaNum = a & b
End Function |
di Vecchio Frac data: 15/07/2013 10:49:31
@paolomath
Il codice è interessante ma va aggiustato un po'.
Inserendo "AA" in una cella e selezionando le successive dieci in basso, lanciando la macro il risultato è la sequenza "A", "B", "C", "D", ecc. cioè una lettera sola (conseguenza dell'assegnazione alla cella di un solo carattere, come si vede a destra dell'uguale: Cells(Selection.Row + i, Selection.Column) = Chr(65 + (i Mod 26))). Non è quello che chiedeva l'OP (la situazione migliora dopo la prima "Z").
@Harry
Ciao :)
Carina la funzione. E funziona anche bene ^_^
di paolomath data: 15/07/2013 10:56:43
Si lo so, la funzione costuisce la sequenza partendo da A (come le colonne di excel). Un po' diverso da quello richiesto...
Per partire da AA basta togliere il primo Case.
Bye
Vuoi Approfondire?