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
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á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...!
Sao trình độ lên nhanh quá vậybá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
lụm lọc trên diễn đàn thôi thầy ạ. chủ đề kiểu này em có từng hỏi rồi nên đụng phát biết đường luôn.Sao trình độ lên nhanh quá vậy
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...!
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
đã cập nhật cách mới, cho em mượn code của thầy ndu nheTô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...???
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