# Cell Reference Increment Functions ## IncrementarCelda Function ### Description Increments a specialized cell reference in the format "LXXX.Y" where: - L: A letter - XXX: A numeric value - Y: A single digit (0-6) The function increments the Y value and handles carrying over to XXX when Y reaches 7. ### Parameters - `CeldaSuperior`: A string in the format "LXXX.Y" (e.g., "A123.4") ### Return Value Returns a string with the incremented reference in the same format. ### Logic Flow 1. Separates the reference into components: - First letter - Numbers before the decimal point - Number after the decimal point 2. Increments the decimal part (Y) 3. If Y reaches 7: - Resets Y to 0 - Increments the XXX part 4. Reconstructs the reference in the original format ```pascal Public Function IncrementarCelda(CeldaSuperior As String) As String ' Encuentra la posición del punto Dim dotPosition As Integer dotPosition = InStr(1, CeldaSuperior, ".") ' Extrae la primera letra, la parte antes del punto (XXX) y la parte después del punto (Y) Dim primeraLetra As String Dim parteIzquierda As String Dim parteDerecha As String primeraLetra = Left(CeldaSuperior, 1) ' Extrae la primera letra parteIzquierda = Mid(CeldaSuperior, 2, dotPosition - 2) parteDerecha = Mid(CeldaSuperior, dotPosition + 1, Len(CeldaSuperior) - dotPosition) ' Convierte las partes a números Dim numeroIzquierda As Integer Dim numeroDerecha As Integer numeroIzquierda = CInt(parteIzquierda) numeroDerecha = CInt(parteDerecha) ' Incrementa la parte derecha y reinicia si es necesario If numeroDerecha < 7 Then numeroDerecha = numeroDerecha + 1 Else numeroDerecha = 0 numeroIzquierda = numeroIzquierda + 1 End If ' Construye el resultado en el formato "LXXX.Y" donde L es la primera letra original IncrementarCelda = primeraLetra & numeroIzquierda & "." & numeroDerecha End Function ``` ## IncrementarCeldaValor Function ### Description Increments a cell reference by a specified value. The function works with references that have letters followed by numbers. ### Parameters - `CeldaSuperior`: A string containing letters followed by numbers - `Incremento`: An integer value to add to the numeric portion ### Return Value Returns a string with the original letters and the incremented numeric value. ### Logic Flow 1. Separates the reference into: - Letter portion - Numeric portion 2. Converts the numeric portion to a long integer 3. Adds the increment value 4. Reconstructs the reference with original letters and new number ```pascal Public Function IncrementarCeldaValor(CeldaSuperior As String, Incremento As Integer) As String ' Extrae la parte de letras y la parte de números Dim letras As String Dim numerosComoTexto As String Dim i As Integer ' Encuentra el punto donde comienzan los números después de las letras i = 1 While i <= Len(CeldaSuperior) And Not IsNumeric(Mid(CeldaSuperior, i, 1)) i = i + 1 Wend letras = Left(CeldaSuperior, i - 1) numerosComoTexto = Mid(CeldaSuperior, i, Len(CeldaSuperior) - i + 1) ' Convierte la parte numérica a un número largo y le añade el incremento Dim numeroFinal As Long numeroFinal = CLng(Val(numerosComoTexto)) numeroFinal = numeroFinal + Incremento ' Construye el resultado final IncrementarCeldaValor = letras & numeroFinal End Function ```