Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Visual Basic (VB).

Модерирует : ShIvADeSt

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

Открыть новую тему     Написать ответ в эту тему

NEOMATRIX



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору


Данный топик предназначен только для обсуждения типовых задач на Visual Basic.
Обсуждение задач на VBA (а именно, Excel, Word, Access) строго запрещено!
Пишите в соответствующих топиках.

 
Родственные топики:
  • Excel VBA - часть 1, часть 2 - все вопросы по Excel VBA туда
  • Word VBA все вопросы по Word VBA туда
  • Access все вопросы по программированию в Access туда
  • VBScript - программирование "удобняшек" на VBScript
  • QBasic - типовые задачи на QBasic
     
  • Date Time Functions In Visual Basic
  • VB6's Trig, Math, Financial, Boolean, and Random functions
  • Visual Basic 6 String Functions
  • VB6 Number System Functions (Hex, Oct, Etc)
  • VB6's DateAdd function
     
  • Functions (Visual Basic)
  • Keywords and Members by Task
  • Visual Basic Reference
     
  • Visual Basic String Manipulation Tutorials
     
  • Top 10 Visual Basic Sins

     
    Учебники:
    Visual Basic для студентов и школьников. Культин Н. (2010)
    Занимательное программирование на Visual Basic.NET. Климов А. (2005)
    Visual Basic в задачах и примерах. Сафронов (2009)
    Visual Basic 2012 на примерах. Зиборов В. (2012)

  • Всего записей: 202 | Зарегистр. 29-12-2004 | Отправлено: 19:30 16-11-2005 | Исправлено: XPerformer, 10:07 28-10-2014
    Mont1

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    maratino
    Вместо строки

    Цитата:
    rng = c & ":" & c & "," & r & ":" & r  

    используй
    rng = r & ":" & r
     

    Всего записей: 49 | Зарегистр. 15-10-2008 | Отправлено: 04:06 06-07-2009
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    maratino, попытался вникнуть в твой текст. Т.е. получается, что если пользователь выделяет только ОДНУ ячейку - должен выделиться "крест" из пересекающейся строки и колонки? Так это ИМХО сделать проще
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then
        Range(Columns(Target.Column).Address & ", " & Rows(Target.Row).Address).Select
        Target.Activate
    End If
    End Sub
     
    Если же нужно выделять ТОЛЬКО горизонталь, код будет таким:
     
    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Cells.Count = 1 Then
        Range(Rows(Target.Row).Address).Select
        Target.Activate
    End If
    End Sub
     
    Удачи!

    ----------
    Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

    Всего записей: 4268 | Зарегистр. 22-06-2002 | Отправлено: 14:08 07-07-2009 | Исправлено: ZlydenGL, 16:40 08-07-2009
    maratino



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Mont1
    ZlydenGL
    Вам обеим большое спасибо! Оба варианта работают
    Но возникь другой аопрос
    При активации ячейки, на форме появляется фото товара
    проблема в том, что стрелки-клавиши "вверх-вниз" не функционируют
    Как можно их оживить?
    Вот код
     Private Sub Worksheet_SelectionChange(ByVal Target As Range) ' âûâîä  
        On Error Resume Next  
        Dim cell As Range: Set cell = Target.EntireRow.Cells(2)  
        If cell.Hyperlinks.Count > 0 Then    
            PicPath = Replace(ThisWorkbook.FullName, ThisWorkbook.Name, cell.Hyperlinks(1).Address)
            If Dir(PicPath) <> "" Then    
                With F
                    .Picture = LoadPicture(PicPath)
                    .Width = F.Picture.Width / 33: .Height = F.Picture.Height / 33
                    .Top = Application.Top + 24
                    .Left = Application.Width + Application.Left - .Width - 18
                    .Caption = cell.Previous: .Show
     
                     
                End With
            End If
        Else    
            Unload F
        End If
    End Sub
     
    "В" здесь гиперссылка на фото
    выдели любую ячейку из этой строки, фото меняется

    Всего записей: 58 | Зарегистр. 11-03-2007 | Отправлено: 13:46 08-07-2009
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    maratino, за Mont1 не отвечаю, но я вообще-то парень
     
    Стрелки "вверх-вниз-и-другие стороны" тебе для навигации по листу нужны? Тогда перед End Sub сделай Target.Activate Объект картинки при этом фокус потеряет, а лист наоборот, получит (и соответственно управление вернется).
     
    Удачи!

    ----------
    Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

    Всего записей: 4268 | Зарегистр. 22-06-2002 | Отправлено: 13:57 08-07-2009 | Исправлено: ZlydenGL, 16:39 08-07-2009
    maratino



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZlydenGL
     
    Не получается. Может я не так делаю?

    Всего записей: 58 | Зарегистр. 11-03-2007 | Отправлено: 11:43 09-07-2009
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    maratino, попробуй кроме Target.Activate сделать Thisworkbook.ActiveSheet.Activate Или просто кинь мне на мыло (в профиле) книжку - гляну на своей машинке

    ----------
    Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

    Всего записей: 4268 | Зарегистр. 22-06-2002 | Отправлено: 12:17 09-07-2009
    Lovec



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    All
    Подскажите плиз как развернуть окно... Не часто программирую, наверно поэтому поиск по инету в течении 2-х часов дал только полурезультат. Научился посылать окну приказ закрыться
    Private Declare Function PostMessage Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
    Const WM_CLOSE = &H10
    PostMessage oIE.hwnd, WM_CLOSE, 0, 0
     
    А вот как максимизировать - не понял ...
     
    Подскажите, плиз

    Всего записей: 1028 | Зарегистр. 29-10-2002 | Отправлено: 12:54 09-07-2009
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Lovec, вот это подойдет?
     
    Добавлено:
    Ну или так
     

    Код:
    'API Declarations
    Private Declare Function FindWindow Lib "user32" Alias _
       "FindWindowA" (ByVal lpClassName As String, ByVal _
       lpWindowName As String) As Long
    Private Declare Function ShowWindow Lib "user32" (ByVal _
       hwnd As Long, ByVal nCmdShow As Long) As Long
    Private Const SW_MAXIMIZE = 3
     
    'the code to find and maximize a notepad window
    Dim WinHandle As Long
    WinHandle = FindWindow("Notepad", vbNullString)
    ShowWindow WinHandle, SW_MAXIMIZE


    ----------
    Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

    Всего записей: 4268 | Зарегистр. 22-06-2002 | Отправлено: 13:15 09-07-2009
    maratino



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZlydenGL
    http://files.mail.ru/ZBDR1R
    http://files.mail.ru/ZBDR1R?t=1 фотки
    создайте папку img  и фотки туда
    папка с фото и xls должны находится в одном месте

    Всего записей: 58 | Зарегистр. 11-03-2007 | Отправлено: 16:59 09-07-2009
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    maratino, можешь куда-нить еще выложить? Уже минуту крутится "Действия" - "ждите..."
     
    Добавлено:
    ... или уже из дома скачаю и заценю
     
    Добавлено:
    Скачал. Сразу вопрос - а какой тип предполагается у переменной F? У меня она даже после выполнения инструкций With осталась Empty (и естественно никакая картинка не подгрузилась).

    ----------
    Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

    Всего записей: 4268 | Зарегистр. 22-06-2002 | Отправлено: 17:01 09-07-2009
    maratino



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ZlydenGL
    я професионально не отвечу. но предполагаю, что это форма, куда и фото загружается
    сейчас скриншот вышлю
    Отправил от имени maratino@narod.ru

    Всего записей: 58 | Зарегистр. 11-03-2007 | Отправлено: 11:22 10-07-2009 | Исправлено: maratino, 11:51 10-07-2009
    ZlydenGL



    Moderator
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    maratino, ну тогда все ясно. Во-первых, ты форму наверняка модально вызываешь, а во-вторых, если форма проекта перехватывает контроль на себя - вернуть контроль листу можно либо щелкнув по листу, либо выгрузив форму.  
     
    Поэтому лучше создай на листе объект Picture и грузи изображение в него А если изображения нет - вешай ему нулевой размер (или вообще скрывай нафиг).

    ----------
    Переработал: втыкая аккумулятор в шуруповерт пытаешься передёрнуть затвор

    Всего записей: 4268 | Зарегистр. 22-06-2002 | Отправлено: 12:40 10-07-2009
    urodec



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет, помогите, пожалуйста, решить сл. задачу
    Необходимо создать контейнер, который смог бы получать любой объект и возвращать его. Контейнер должен жить все время, доступ к данным должен быть быстрым

    Всего записей: 711 | Зарегистр. 17-01-2003 | Отправлено: 12:38 30-07-2009
    LostCost

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Здравствуйте всем. У меня есть вобщем то самый что не на есть простой и банальный вопрос, но с учетом того что 2 недели как начал основательно заниматься бейсиком(считая мат. часть) я думаю это простительно.
    Вобщем, моя задача сделать боее менее работающий многострочный калкулятор. Пока что имеется вот это:
    Код
    Сделано вроде бы все что нужно, но я не могу никак разобраться с кнопками "1", "2" и т.п. и знак равенства("="). Вот код "1":
    Код:
      Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            If TextBox1.Text = "0" Then
                TextBox1.Text = "1"
            Else
                TextBox1.Text = TextBox1.Text + "1"
            End If
            If oper = "" Then
                a = TextBox1.Text
            Else
                b = TextBox1.Text
            End If
        End Sub
    (его так же можно найти под тегом [more].
    Вопрос, что я сделал не так, и как будет правильно? понять самостоятельно я не смог.. прошу привести пример.. Работаю на VB2010.
    P.S. Так же знаю что есть "однострочный"(или типо того) калькулятор, если бы могли дать сюда код такого калькулятора, был бы благодарен. Но основное все равно первый тип.
    Зарание спасибо.

    Всего записей: 27 | Зарегистр. 11-09-2009 | Отправлено: 22:54 11-09-2009 | Исправлено: LostCost, 22:54 11-09-2009
    Legio



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    А это ничего, что oper объявлен как Double, а в условии проверка вся из себя "строковая"?
    Но вообще -- категорически не понятно, чего же собственно вам надо от кода.

    Всего записей: 695 | Зарегистр. 01-08-2003 | Отправлено: 16:13 13-09-2009
    LostCost

    Newbie
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Все все.. доделал. сглупил с опером) все,  его доделал.

    Всего записей: 27 | Зарегистр. 11-09-2009 | Отправлено: 20:43 13-09-2009
    zerkalo77



    Junior Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Господа, а возможно ли средствами Visual Basic отключить звук (или добиться регулировки громкости)?
     
    Добавлено: Нашел сам. Может кому пригодится.
     

    Код:
     
    Private Declare Function waveOutSetVolume Lib "Winmm" (ByVal wDeviceID As Integer, ByVal dwVolume As Long) As Integer
    Private Declare Function waveOutGetVolume Lib "Winmm" (ByVal wDeviceID As Integer, ByVal dwVolume As Long) As Integer
    Dim a As Long
     
    private sub выключение()
    a = waveOutSetVolume(0, 0)
    end sub
     
    private sub включение()
    a = waveOutSetVolume(0, &HFFFF)
    end sub
     

    Всего записей: 70 | Зарегистр. 02-06-2006 | Отправлено: 12:38 06-10-2009 | Исправлено: zerkalo77, 15:06 13-10-2009
    B16



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Задача проста до ужаса, я бы сделал но забыл как брать данные из inputbox'a  
    Вот текст задачи:
    В приложении вводится день, месяц и год рождения, в результате работы они выводятся в соответствующих отдельных окнах(ввод выполнить при помощи inputbox'a)
    Вот такой код программы(это я набросал):
    Private Sub Command1_Click()
    Dim pass As Integer
    Dim D As Integer
    Dim M As Integer
    Dim G As Integer
    pass = Val(InputBox("Введите день, месяц и год вашего рождения", "ДМГ"))
    D = Label1.Caption
    M = Label2.Caption
    G = Label3.Caption
    End Sub

     
    Теперь нужно из инпут бокса взять введённые данные и вывести в лейблы. Лейблы то я сделал. Но как из него взять данные....на практике мы проходили но по тем задачам я так и не понял как из него происходит выборка.
     
    Вот скрин "программы"

    Всего записей: 69 | Зарегистр. 31-07-2009 | Отправлено: 13:00 07-10-2009 | Исправлено: B16, 13:02 07-10-2009
    Alex_Kanahin

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    B16
    , выборку надо делать не из него а из переменной "pass", различными строковыми функиями. Помоему в VB InStr - функция ищет строку в другой строке. При помощи ее ищи первое вхождение знака "." - все что до этого знака есть день, ну а дальше по той же технологии.

    Всего записей: 6 | Зарегистр. 16-03-2009 | Отправлено: 13:59 07-10-2009
    B16



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Alex_Kanahin можно поподробнее?  
    Это D,M,G присвоить переменную стринг?

    Всего записей: 69 | Зарегистр. 31-07-2009 | Отправлено: 14:03 07-10-2009
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61

    Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Задачи на Visual Basic (VB).


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2024

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru