Страницы: 1
RSS
Коверкает числа, не меняет формат, считает неправильно
 
Ну вот работал я себе спокойно в старом Екселе, вводил столбиком цифры, внизу жал кнопку формула, он считал мне все без ошибок. Вот появился крутой 2003. Ввожу цифру - переводит в дату. Меняю ячейку на цифровой формат - вместо 34 пишет какие-то космические 347854.8 Меняю на текстовый, потом на числовой, считает неправильно. Несколько форумов прошел - ответы все типа изменить формат ячейки Менял. Бесполезно. Ну к чему такой геморой?  
Надо-то все по простому - чтобы не менял введенное число и считал правильно в простом действии сложения, вычитания, деления, и умножения. Или простые действия надо уже через зад делать?Зла не хватает, хоть систему переустанавливай, опять же он уже все файлы испортил.
 
Ну вот работал я себе спокойно в старом Екселе, вводил столбиком цифры, внизу жал кнопку формула, он считал мне все без ошибок. Вот появился крутой 2003. Ввожу цифру - переводит в дату. Меняю ячейку на цифровой формат - вместо 34 пишет какие-то космические 347854.8 Меняю на текстовый, потом на числовой, считает неправильно. Несколько форумов прошел - ответы все типа изменить формат ячейки Менял. Бесполезно. Ну к чему такой геморой?  
Надо-то все по простому - чтобы не менял введенное число и считал правильно в простом действии сложения, вычитания, деления, и умножения. Или простые действия надо уже через зад делать?Зла не хватает, хоть систему переустанавливай, опять же он уже все файлы испортил.
 
Если выполнить приведенный ниже макрос, то числа меняться на даты уже не будут.  
 
Sub ХочуЧислаАНеДаты()  
With Application  
.DecimalSeparator = "."  
.ThousandsSeparator = " "  
.UseSystemSeparators = False  
End With  
End Sub  
 
---  
ZVI
 
Если выполнить приведенный ниже макрос, то числа меняться на даты уже не будут.  
 
Sub ХочуЧислаАНеДаты()  
With Application  
.DecimalSeparator = "."  
.ThousandsSeparator = " "  
.UseSystemSeparators = False  
End With  
End Sub  
 
---  
ZVI
 
Спасибо, конечно за макрос, вот только что я с ним делать буду? Как его применять? Перед вводом? или после?    
Но кроме этого, как все таки или можно ли заставить его не менять числа, и правильно считать?
 
Спасибо, конечно за макрос, вот только что я с ним делать буду? Как его применять? Перед вводом? или после?    
Но кроме этого, как все таки или можно ли заставить его не менять числа, и правильно считать?
 
Предлагаю разобраться и понять смысл формата ячейки.    
С Вами согласен, что зачастую услужливый дурак, опаснее врага. Иногда Excel2003 выступает в качестве того самого навязчивого дурака. Но, проведя ряд экспериментов над форматами ячеек, Вы уловите закономерности, по которым и следует строить форматы диапазонов. Тогда и формулы будут работать, как надо, и форматы данных покажутся Вам логичными.  
С уважением, Александр.
 
{quote}{login=Юра}{date=17.02.2008 12:32}{thema=}{post}Спасибо, конечно за макрос, вот только что я с ним делать буду? Как его применять? Перед вводом? или после?    
Но кроме этого, как все таки или можно ли заставить его не менять числа, и правильно считать?{/post}{/quote}  
---  
Макрос достаточно применить один раз, после этого Excel сам поймет и запомнит, что менять даты на время не нужно.  
 
Проблема возникает тогда, когда:  
1. В региональных настройках операционной системы установлена десятичная ЗАПЯТАЯ (установлено по умолчанию для Русской версии), а не ТОЧКА.  
2. И если в Excel при этом в международных настройках указано, что нужно использовать системные разделители (установлено по умолчанию).  
 
Обычно по привычке вводят в Excel, например, 16.02 , а Excel автоматически переводит это в 16.фев. А нужно было вводить число с десятичной ЗАПЯТОЙ, а не точкой.  
Т.е. 16,02 ввелось бы без проблем как число.  
 
Предложенный макрос просто автоматически выполнит то, что можно сделать вручную: устанавлит в Excel десятичную точку, независимо от системных настроек.  
 
Вот инструкция, как это сделать вручную:  
1. Войти в  Excel меню: Сервис – Параметры – Международые  
2. Снять флажок:  «Использовать системные разделители»  
3. В поле  «Разделитель целой и дробной части» записать точку  
4. Нажать OK  
 
---  
ZVI
 
Обнаружил несколько своих опечаток выше, одна из них в 1 абзаце принципиальна:  речь, конечно же, идет о проблеме автозамены Excel-ем ЧИСЕЛ на ДАТЫ.  
 
Подгружу еще немного информации из личного опыта о некоторых нюансах, связанных с десятичным знаком.  
 
Итак, 1-й способ изменения настроек Excel описан выше.  
При этом редко, но все же могут возникнуть проблемы с некоторыми не очень аккуратно спроектированными VBA-надстройками. Примером может послужить надстройка «Поиск решения», поставляемая с Excel. Если разделителем десятичных знаков в операционной системе установлена запятая, а в Excel принудительно установлена десятичная точка, то после вызова надстройки «Поиск решения» на вкладке «Параметры» невозможно поменять «Относительную погрешность» и «Сходимость».  Там стоят системные разделители (запятая)! Более того, если попытаться поменять эти параметры (безуспешно), то выйти с вкладки «Параметры» удастся только по отмене, и после этого надстройка может «заглючить». Та же проблема есть в коммерческой надстройке GeneHunter (генетические алгоритмы) и в некоторых других. Все это выглядит странным, тем более что средствами VBA можно корректно отслеживать такую ситуацию. Чаще всего авторы таких надстроек - американцы, которые не работают на локализованных версиях, и поэтому мало знают об их особенностях.  
 
2-й способ – поменять системный параметр десятичного знака. Это делается (не в Excel) из: Пуск (в левом нижнем углу рабочего стола) – Настройка – Панель управления – Язык и региональные стандарты – Региональные параметры – Настройка – Разделитель целой и дробной части. Можно установить здесь точку вместо запятой, установленной по умолчанию.  Как это ни странно, но после этого могут возникнуть неожиданные проблемы с некоторыми программами. Например, при открытии Outlook может возникать сообщение об ошибке единицы измерения, а в SharePoint Portal-е  некоторые сервисы не устанавливаются или перестают корректно работать. Обычно в таких случаях переустанавливают операционную систему и все остальное. А то, что это связанные проблемы догадаться практически невозможно, связать это помог лишь печальный опыт и интуиция.  
 
Резюме: советую устанавливать десятичную точку  в Excel, а не менять системный параметр. А при возникновении проблем с некоторыми надстройками (все же не часто это случаются) временно переключаться в Excel на: Сервис – Параметры - Использовать системные разделители.  
 
Побольше всем хороших программ и поменьше печального опыта с ними!  
 
---  
ZVI
 
Непомогает, если вводить например иерархический список допустим 1.2.1    
1.2.2 итд, то всёравно заменяет на даты, ни макрос ни параметры не помогают
 
Ну тут-то Excel прав на все сто :-) Вы вводите дату. Числа 1.2.1 не существует, зато в таком формате принято записывать даты. Или вы можете сказать каким числом является 1.2.1? Если вам нужно, чтобы 1.2.1 не менялось на дату, то либо предварительно ставьте текстовый формат ячейки либо вначале ставьте апостроф: '1.2.1
KL
 
{quote}{login=ken}{date=07.08.2009 06:26}{thema=}{post}Непомогает, если вводить например иерархический список допустим 1.2.1    
1.2.2 итд, то всёравно заменяет на даты, ни макрос ни параметры не помогают{/post}{/quote}  
В диапазоне, где Вы хотите видеть иерархический список, установите перед вводом данных  формат "текстовой". И все. Вводите хоть до 10-го колена.  
С уважением, Александр.
 
У меня похожая проблема, только смысл вот такой, как наступает осень то просто волосы дыбом встают от этих замен.  
 
при вводе например: 2444/01/09 то он автоматом ставит 197240, или дату 09.01.2444  
 
апостроф помогает, но один раз. Потом когда все данные загоняешь на расчет, то все номера заказов (2444/01/09) переделываются на даты, после записи на лист  
 
Буду рад если поможете!
 
С этой проблемой я так понимаю ни кто не сталкивался ?
 
Сталкиваются все. Excel такие данные определяет как дату и переводит их или в число, соответствующее этой дате (числовой формат) или в саму дату.  
Лечение - после ввода выбрать формат ячейки Общий и перенабрать. Но лучше сразу выбрать формат Текстовый :)
 
Есть "проблема" в виде автозамены.  
Есть стандартные "способы решения", как, к примеру, формат ячеек текстовой/апостроф. Есть нестандартные, как, опять же к примеру, использование невидимых/непечатаемых символов.  
Есть способ выключения автозамены или изменения используемых разделителей.  
 
 
Учитывая то, что в этой теме уже упоминалось, а при обычном "загоне" апостроф никуда не исчезает, смысл вопроса не понятен.
 
{quote}{login=antycapral}{date=05.11.2009 03:47}{thema=}{post}апостроф помогает, но один раз. {/post}{/quote} Ну да. Он одноразовый. Один раз ввел в ячейку, а в другую уже новый апостроф нужен.
Bite my shiny metal ass!      
 
Походу дела так оно и есть.  
 
Распишу примерно что я имею:    
Есть кнопка с макросом -    
 
Private Sub CommandButton2_Click()  
If Z * P = 0 Then Exit Sub  
MultiPage1.Value = 0  
ComboBox1.Visible = True  
ComboBox1.Clear  
ComboBox1.AddItem "Новый лист"  
For I = 1 To Worksheets.Count  
If Left(Worksheets(I).Name, 2) = "ИД" Then ComboBox1.AddItem Worksheets(I).Name  
Next  
ComboBox1.SetFocus  
End Sub  
 
 
В макросе есть вот это ComboBox1.AddItem "Новый лист"    
 
У меня такая идея, как сделать так, чтоб "новый лист" был не в авто формате, а в текстовом формате по умолчанию!    
 
Искал где это может быть но не нашел (
 
Все шаблоны, которые нашел в моем профиле, все исправил на текстовый формат, но при создании новый книги не помогает все равно!    
 
Если не прав то поправьте! (
 
Я просто привел макрос, который у меня стоит не кнопке!    
У меня просто есть мысль, я этой кнопкой записываю на новую страницу данные, или перезаписываю, и вот когда там есть 2444/01/09 (или что то похожее)  мне все коверкает в даты!  
 
был эксперимент, беру лист, перевожу его в текстовый формат, заношу данные, далее беру и просто перезаписываю все эти данные выбирая тот же лист, и в итоге, он все данные перезаписывает, и меняет мне к примеру 2444/01/09 на 09.01.2444    
 
вот моя беда  
ногами сильно тока не пинайте
 
{quote}{login=ZVI}{date=17.02.2008 01:06}{/post}Предложенный макрос просто автоматически выполнит то, что можно сделать вручную: устанавлит в Excel десятичную точку, независимо от системных настроек. ZVI {/post}{/quote}  
ДАЙ Вам Бог здоровья!!!  
Помогло! И ещё как!
 
{quote}{login=ZVI}{date=17.02.2008 12:14}{post}{сли выполнить приведенный ниже макрос, то числа меняться на даты уже не будут.  
Sub ХочуЧислаАНеДаты()---  
ZVI{/post}{/quote}  
Урааааааа!!!! спасибо добрый человек  
гора с плеч))))
 
У моего хорошего знакомого, большого почитателя футбола, есть поговорка: хорошо поданный пас трудно не забить.    
Радует, что поданный пару лет назад пас, хоть изредка, но продолжают удачно забивать :-)
 
Я все понимаю, все помогло. Но все-таки как отключить автозамену совсем и навсегда. Я например использую Excel для расчетов. Мне нужно копировать из 1С цифры (а там при копировании в разделении ставится точка), подставлять формулы и смотреть результат. В итоге у меня получается в дробных числах, и запятая, и точка. Делать формат текстовый не вариант, потому что приходится вставлять формулы.
 
Можно заменить точку на запятую формулой =ПОДСТАВИТЬ(Ячейка;".";",")  
Ну вот как-то так
 
спасибо, долго искала попроще вариант решения проблемы - через формулу очень удобно и просто)
 
{quote}{login=Sh_Alex}{date=07.08.2009 08:38}{thema=Re: }{post}{quote}{login=ken}{date=07.08.2009 06:26}{thema=}{post}Непомогает, если вводить например иерархический список допустим 1.2.1    
1.2.2 итд, то всёравно заменяет на даты, ни макрос ни параметры не помогают{/post}{/quote}  
В диапазоне, где Вы хотите видеть иерархический список, установите перед вводом данных  формат "текстовой". И все. Вводите хоть до 10-го колена.  
С уважением, Александр.{/post}{/quote} Извините,а если я попирую более 1000 пунктов, не могу же я их все переправлять! И до вставки пунктов изменение формата ячеек не помогает. Как тут быть?
 
Все просто - поменяйте формат ячеек, а потом вставте формат (кнопку можно вынести дополнительно на панель инструментов).
Страницы: 1
Читают тему
Наверх