VBA选择工作表问题

时间:2017-01-18 23:19:16

标签: vba excel-vba excel

我正在尝试制作一个应用程序,当我点击按钮'添加供应商时,您可以将新供应商(Fournisseurs in French)添加到工作表(" Fournisseurs") #39;'在工作表中(" Accueil")

我想在不打开工作表的情况下添加新供应商(" Fournisseurs")。选择并留在工作表中(" Accueil")

有什么想法吗?

Sub NouveauFournisseur() 'OK
Dim i As Integer

Worksheets("Fournisseurs").Select 'sélection de la feuille
creation_fournisseur.Show 'affichage de l'userform

If OK Then
    i = 0 'boucle pr trouver la ligne vide où copier les données dans le formulaire
    Do
        i = i + 1
    Loop Until Cells(i, 1) = "" 'jusqu'à ce qu'une ligne soit vide
    Cells(i, 1) = creation_fournisseur.zt_nom
    Cells(i, 2) = creation_fournisseur.zt_adresse
    Cells(i, 3) = Val(creation_fournisseur.zt_tel)
    Cells(i, 4) = Val(creation_fournisseur.zt_fax)
End If

Unload creation_fournisseur 'fermer l'userform
Worksheets("Accueil").Select 'retour page d'acceuil après avoir rentré le fournisseur

End Sub

2 个答案:

答案 0 :(得分:0)

像这样的东西

{{1}}

答案 1 :(得分:0)

您还可以添加: Sub NouveauFournisseur()'确定

Dim i As Integer, shtF As WorkSheet

Set shtF = ThisWorkbook.Worksheets("Fournisseurs")

Worksheets("Accueil").activate
Worksheets("Accueil").Select
call moduleX.creation_fournisseur.Show
call formY.creation_fournisseur.Show

'creation_fournisseur.Show 'affichage de l'userform

If OK Then
    i = 0 'boucle pr trouver la ligne vide où copier les données dans le formulaire
    Do
        i = i + 1
    Loop Until shtF.Cells(i, 1) = "" 'jusqu'à ce qu'une ligne soit vide
    shtF.Cells(i, 1) = creation_fournisseur.zt_nom
    shtF.Cells(i, 2) = creation_fournisseur.zt_adresse
    shtF.Cells(i, 3) = Val(creation_fournisseur.zt_tel)
    shtF.Cells(i, 4) = Val(creation_fournisseur.zt_fax)
End If

Worksheets("Accueil").activate
Worksheets("Accueil").Select

Unload creation_fournisseur 'fermer l'userform

Worksheets("Accueil").activate
Worksheets("Accueil").Select

End Sub

其中ModuleX或FormY分别包含creation_fournisseur的子。

因此,您只需直接调用表单而无需打开其他工作表,就像他们在此处建议的那样:Call a Subroutine from a different Module in VBA

(所有激活和选择都有点过分,但你明白了)