2017-01-18 2 views
0

워크 시트에있는 '공급 업체 추가'버튼을 클릭하면 워크 시트 ("Fournisseurs")에 새 공급 업체 (Fournisseurs in french)를 추가 할 수있는 응용 프로그램을 만들려고합니다. "ACCUEIL")VBA 선택 워크 시트 문제

내가. 워크 시트 ("의 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 

최종 하위

답변

0

뭔가 같이

Sub NouveauFournisseur() 'OK 

    Dim i As Integer, shtF As WorkSheet 

    Set shtF = ThisWorkbook.Worksheets("Fournisseurs") 

    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 

    Unload creation_fournisseur 'fermer l'userform 

End Sub 
0

당신은 또한 추가 할 수 있습니다 하위 NouveauFournisseur() 'OK

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 

최종 하위

경우 ModuleX 또는 FormY에는 각각 creation_fournisseur의 하위 항목이 있습니다.

당신은 직접 그들이 여기 제안처럼, 다른 시트를 열지 않고 형태를 호출 그래야 : Call a Subroutine from a different Module in VBA

(A 거의 모든 활성화 및 선택과 과잉의 비트,하지만 당신은 아이디어를 얻을)