Lỗi kích thước ảnh trên thẻ học sinh (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

cuonghoa176

Hỏi nhiều
Tham gia
31/1/11
Bài viết
169
Được thích
23
Giới tính
Nam
Nghề nghiệp
Giáo viên THCS
Xin nhờ GPE, các cao thủ VBA sửa giúp code sao cho ảnh các cháu được đặt đúng chỗ, khít vào Cell; Mỗi lần in 10 thẻ, sau mỗi lần chọn (1,11,21,,,) tự động xoá hết ảnh trước đi.
Cảm ơn các Bác trước...!
 

File đính kèm

Lần chỉnh sửa cuối:
Xin nhờ GPE, các cao thủ VBA sửa giúp code sao cho ảnh các cháu được đặt đúng chỗ, khít vào Cell; Mỗi lần in 10 thẻ, sau mỗi lần chọn (1,11,21,,,) tự động xoá hết ảnh trước đi.
Cảm ơn các Bác trước...!
bác chờ tí nha. để sửa lại dữ liệu của bác cho dễ chơi đã. gộp ẩn, chèn nhìn kinh quá
-------------------------------------------------
mình có sửa lại điều kiện dò hết rồi đó nha. (STT dò ngang với thẻ luôn cho dễ kiểm soát)
xem lại xem hình đúng người chưa nha bác.(Tiểu học mà nhìn già quá. với file ảnh cho độ phân giải êm êm tí nha, hình có vẻ bị lem ấy- đuôi hình phải là ".jpg")
tên hình tương ứng với STT
đường dẫn hình mặc định y chang vậy nha, đổi tên hay sửa đường dẫn là không hiện hình đâu
hàm tại C4 thế này
=CommPic(LEFT(CELL("filename";A1);FIND("[";CELL("filename";A1))-1)&"/Anh/"&L1&".jpg";C4)
màu xanh là đường dẫn
màu đỏ là tên ảnh
màu đen là đuôi ảnh
màu xanh lá là ô chứa ảnh

http://www.mediafire.com/download/fd7bb8kwtxqw1y6/In_the.rar
p/s: thấy bảng tính đâu cần phải kéo nhiều cột lại như vậy đâu. nhìn rối mắt 1 tấm thẻ chỉ 4 cột thôi là vừa rồi (chỉ góp ý bác thế thôi)
-------------------------------------------------
Thử xem file mình bố trí lại xem thế nào nha. xem có dễ nhìn hơn không
 

File đính kèm

Lần chỉnh sửa cuối:
Upvote 0
Đúng là nhiều sao, trình độ...cao! Em xin bái phục! Cảm ơn Bác rất nhiều!
 
Upvote 0
bác chờ tí nha. để sửa lại dữ liệu của bác cho dễ chơi đã. gộp ẩn, chèn nhìn kinh quá
-------------------------------------------------
mình có sửa lại điều kiện dò hết rồi đó nha. (STT dò ngang với thẻ luôn cho dễ kiểm soát)
xem lại xem hình đúng người chưa nha bác.(Tiểu học mà nhìn già quá. với file ảnh cho độ phân giải êm êm tí nha, hình có vẻ bị lem ấy- đuôi hình phải là ".jpg")
tên hình tương ứng với STT
đường dẫn hình mặc định y chang vậy nha, đổi tên hay sửa đường dẫn là không hiện hình đâu

http://www.mediafire.com/download/fd7bb8kwtxqw1y6/In_the.rar
p/s: thấy bảng tính đâu cần phải kéo nhiều cột lại như vậy đâu. nhìn rối mắt 1 tấm thẻ chỉ 4 cột thôi là vừa rồi (chỉ góp ý bác thế thôi)
-------------------------------------------------
Thử xem file mình bố trí lại xem thế nào nha. xem có dễ nhìn hơn không
Sao trình độ lên nhanh quá vậy
 
Upvote 0
Xin nhờ GPE, các cao thủ VBA sửa giúp code sao cho ảnh các cháu được đặt đúng chỗ, khít vào Cell; Mỗi lần in 10 thẻ, sau mỗi lần chọn (1,11,21,,,) tự động xoá hết ảnh trước đi.
Cảm ơn các Bác trước...!

download and See this file:
 

File đính kèm

Upvote 0
I'm sorry,some error in the last file,corrected the mistakes as this codes please:
Mã:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
  Dim Shape As Shape, ScreenUpdating As Boolean
  Dim I   As Long
  If Target.Address = "$BA$1" Then
    ScreenUpdating = Application.ScreenUpdating
    Application.ScreenUpdating = False
    With Target.Parent
      For Each Shape In .Shapes
        With Shape
          If .Type <> msoFormControl Then .Delete
        End With
      Next Shape
      
      For I = 6 To 66 Step 15
        AddPictureToRange .Range("C" & I), ThisWorkbook.Path & "\Anh\" & .Range("C" & I).Value & ".JPG"
        AddPictureToRange .Range("AB" & I), ThisWorkbook.Path & "\Anh\" & .Range("AB" & I).Value & ".JPG"
      Next I
    End With
    Application.ScreenUpdating = ScreenUpdating
  End If
End Sub
 
Upvote 0
Tôi nhớ là hmà Compic này của anh NDU đã update bản mới rồi. Cách dùng đơn giản hơn sao không áp dụng. Cách trên chắc ở bản cũ dài loằng ngoằng thế bạn...???
đã cập nhật cách mới, cho em mượn code của thầy ndu nhe
Mã:
Function CommPic(ByVal PicPath As String, Optional ByVal PicCel As Range, _
                Optional ByVal ScaleWidth As Single = 1, _
                Optional ByVal ScaleHeight As Single = 1) As String
  Dim mRng As Range, cmt As Comment, fso As Object, bChk As Boolean
  On Error Resume Next
  Application.Volatile
  Set fso = CreateObject("Scripting.FileSystemObject")
  If PicCel Is Nothing Then Set PicCel = Application.ThisCell
  PicCel(1, 1).Comment.Delete
  If Left(PicPath, 7) = "http://" Then
    bChk = URLExists(PicPath)
  Else
[COLOR=#ff0000]Tam = PicPath
  Dim FormatPic
  FormatPic = Array(".JPG", ".JPE", ".GIF", ".PNG", ".BMP")
  For i = 0 To UBound(FormatPic)
    bChk = fso.FileExists(PicPath)
    If bChk = False Then
      PicPath = ThisWorkbook.Path & "\" & Tam & FormatPic(i)
      bChk = fso.FileExists(PicPath)
      If bChk Then GoTo Nex
    End If
    Next i
If bChk = False Then
  For i = 0 To UBound(FormatPic)
    bChk = fso.FileExists(PicPath)
    If bChk = False Then
        PicPath = "C:\Users\" & Environ("Username") & "\Pictures\" & Tam & FormatPic(i)
      bChk = fso.FileExists(PicPath)
      If bChk Then GoTo Nex
    End If
    Next i
End If
Nex:[/COLOR]
  End If
  If bChk Then
    If PicCel(1, 1).Comment Is Nothing Then PicCel(1, 1).AddComment
    PicCel(1, 1).Comment.text vbLf
    Set mRng = PicCel(1, 1).MergeArea
    If mRng Is Nothing Then Set mRng = PicCel(1, 1)
    Set cmt = mRng(1, 1).Comment
    cmt.Visible = True
    With cmt.Shape
      .LockAspectRatio = msoFalse
      .Placement = xlMoveAndSize
      .Shadow.Visible = msoFalse
      .Line.ForeColor.RGB = PicCel.Interior.Color
      .AutoShapeType = msoShapeRectangle
      .Left = mRng.Left: .Top = mRng.Top
      .Width = mRng.Width: .Height = mRng.Height
      .ScaleWidth ScaleWidth, msoFalse, msoScaleFromMiddle
      .ScaleHeight ScaleHeight, msoFalse, msoScaleFromMiddle
      .Fill.UserPicture PicPath
    End With
  End If
      Calculate
End Function
Private Function URLExists(ByVal URL As String) As Boolean
  Application.Volatile
  On Error Resume Next
  If Left(UCase(URL), 7) <> "HTTP://" Then URL = "http://" & URL
  With CreateObject("MSXML2.XMLHTTP")
    .Open "HEAD", URL, False: .send
    URLExists = .Status = 200
  End With
End Function
Tự sướng tự Update thêm định dạng ảnh tự động, tự lấy ảnh trong C:\Users\xxxx\Picture\ nếu ảnh không có trong thư mục hiện hành với file
 
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom