2016-04-14 65 views
0

这是我的问题。 我有一张名为A的工作表,我有一些数据。 我有一个名为宏的表2,我有一个按钮。 我想使用此按钮在表单1(A)上使用我的代码。 但我不能使用的模块,我必须使用工作表Sheet1我的代码... Here what I must useVBA - 我必须使用sheet1中的代码和sheet2中的按钮

但是,当我归于我的代码后,点击按钮,它不工作,它让我看到: Error message

它说: “工作表区域或有表中的数据必须是同一工作表上的”应用程序或objectSo定义

错误,我的问题是:如何使用一个按钮, sheet2上sheet1上的代码?

这里是我的代码的开始,如果它可以帮助你:

Sub LinkToImage() 

    Sheets("A").ListObjects.Add(xlSrcRange, Range("$B$1:$K$300"), , xlYes).Name = _ 
     "Tableau1" 
    Range("Tableau1[#All]").Select 
    Sheets("A").ListObjects("Tableau1").TableStyle = "TableStyleLight9" 
    'Créé le tableau avec un style prédéfini. 


    For Each cel In Range("k2", Range("k200").End(xlUp)) 
     cel.Offset(0, 1).Select 
     cel.Offset(0, 1).RowHeight = 100 'Fixe la hauteur des cellules à 100 
     cel.Offset(0, 1).ColumnWidth = 70 'Fixe la taille de la colonne à 40 

     If IsFile(cel.Value) = 0 Then 
     cel.Offset(0, 1).Value = "Photo non dispo" 'Si la photo n'est pas disponible, on affiche "Photo non dispo" 
     Else 
      Set image = Sheets("A").Pictures.Insert(cel.Value) 
      With image 
       .ShapeRange.LockAspectRatio = msoTrue 
       .Width = cel.Offset(0, 1).Width 
       .Height = cel.Offset(0, 1).Height 
       .Left = cel.Offset(0, 1).Left + 5 'Laisse une marge à gauche de 5px 
       .Top = cel.Offset(0, 1).Top + 5 'Laisse une marge en haut de 5px 
       .Height = 90 'Fixe la hauteur de l'image à 90 
       '.Height = 0.9 * cel.Offset(0, 1).Height 
       '.Width = 0.5 * cel.Offset(0, 1).Width 
       '.Right = cel.Offset(0, 1).Right +5 

的错误是在第一线,做我认为,这是因为Sheets("A"),但我不知道如何解决这个问题。 ..

感谢的提前,以及我的英语对不起......

+0

错误消息应解释它,你需要在创建表, – Davesexcel

+0

是在同一张表是的,我知道,我搜索解决方案来解决这个错误:/ – Ikanagura

回答

0

的“Tableau1”的存在增加一个检查如下

Sub LinkToImage() 
Dim table As ListObject 

On Error Resume Next 
Set table = Sheets("A").ListObjects("Tableau1") 
On Error Resume Next 
If table Is Nothing Then Set table = Sheets("A").ListObjects.Add(xlSrcRange, Range("$B$1:$K$300"), , xlYes).Name = "Tableau1" 

    Range("Tableau1[#All]").Select 
    ... 
+0

我做了,它创建了我的两行名为“宏”的表,我不明白为什么。我上传了真实的错误信息,它可以帮助你吗? – Ikanagura

+0

我不会说,因为在我的测试中,它工作:我有一个按钮在工作表“宏”附加到子“LinkToImage”驻留在工作表“A”代码窗格中。单击按钮后,宏将运行并在表“A”中创建“Tableau1”,并使用“Photo non dispo”字符串填充单元格“L2”。然后它结束了,因为我没有数据在表A的列K中除了单元格“K1”中的字符串“Column1” – user3598756

+0

是的,这是正常的,因为您将代码放在工作表“A”代码窗格中。实际上,我的代码必须位于我看到的工作表“宏”代码窗格 – Ikanagura

相关问题