diff --git a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
index b0423cb..e056566 100644
--- a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
+++ b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
@@ -155,32 +155,37 @@ endmethod.
- method CONVERT_COLUMN2INT.
+ METHOD convert_column2int.
DATA: lv_uccpi TYPE i,
+ lv_factor TYPE i,
+ lv_offset TYPE i,
lv_char TYPE c,
- lv_column(2) TYPE c.
+ lv_column TYPE ZEXCEL_CELL_COLUMN_ALPHA.
-* Calculate most significant letter
- lv_char = ip_column+1(1).
- IF lv_char IS NOT INITIAL. "To avoid the first 26 column that have only a char in first position
- ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ).
+* Upper case
+ lv_column = ip_column.
+ TRANSLATE lv_column TO UPPER CASE.
+ CONDENSE lv_column NO-GAPS.
- ep_column = ep_column MOD ( zcl_excel_common=>c_excel_col_module ).
+* Get string lenght and align to right
+ lv_offset = 3 - STRLEN( lv_column ).
- lv_char = ip_column(1).
+ SHIFT lv_column RIGHT BY lv_offset PLACES.
+
+* Claculate column position
+ DO 3 TIMES.
+ lv_offset = sy-index - 1.
+ lv_char = lv_column+lv_offset(1).
+ if lv_char IS INITIAL.
+ CONTINUE.
+ ENDIF.
lv_uccpi = cl_abap_conv_out_ce=>uccpi( lv_char ).
+ lv_factor = 26 ** ( 3 - sy-index ).
+ ep_column = ep_column + ( lv_uccpi MOD zcl_excel_common=>c_excel_col_module ) * lv_factor.
+ ENDDO.
- lv_uccpi = ( lv_uccpi MOD ( zcl_excel_common=>c_excel_col_module ) ) * 26.
-
- ep_column = ep_column + lv_uccpi.
- ELSE.
- lv_char = ip_column(1).
- ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ).
- ep_column = ep_column - zcl_excel_common=>c_excel_col_module.
- ENDIF.
-
-endmethod.
+ENDMETHOD.
diff --git a/ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk b/ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk
index abb4860..b0633c5 100644
--- a/ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk
+++ b/ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk
@@ -1,4 +1,4 @@
-
+