データベースから更新する必要があるプリンシパルシート(起動トラッカー)があります。私は隣接するシート(LAT - マスターデータ)にデータベースの抽出を入れました。VBAは、2枚のシートを比較しながらセルを交換して追加します。
私がしたいのは、列H、O、Qの値が似ていると、列( "Launch Tracker")の列 "E"から列 "一致しません(Launch Tracker)シートの最後に行全体を追加したいと思います。
私はテストをしたときに実行していたこのコードをすでに持っていますが、今は動作していないように見えます。
Option Explicit
Option Base 1
Dim Ttrak_concat, Tdata_concat, Derlig As Integer
Sub General_update()
Dim Cptr As Integer, D_concat As Object, Ref As String, Ligne As Integer, Lig As Integer
Dim Start As Single
Dim test 'for trials
Start = Timer
Application.ScreenUpdating = False
Call concatenate("LAT - Master Data", Tdata_concat)
Call concatenate("Launch Tracker", Ttrak_concat)
'collection
Set D_concat = CreateObject("scripting.dictionary")
For Cptr = 1 To UBound(Ttrak_concat)
Ref = Ttrak_concat(Cptr, 1)
If Not D_concat.exists(Ref) Then: D_concat.Add Ref, Ttrak_concat(Cptr, 2)
Next
'comparison between the sheets
Sheets("LAT - Master Data").Activate
For Cptr = 1 To UBound(Tdata_concat)
Ref = Tdata_concat(Cptr, 1) 'chaineIPR feuil data
Ligne = Tdata_concat(Cptr, 2) 'localisation sheet data
If D_concat.exists(Ref) Then
Lig = D_concat.Item(Ref) 'localisation sheet track
Else
Lig = Derlig + 1
End If
Sheets("LAT - Master Data").Range(Cells(Ligne, "E"), Cells(Ligne, "AL")).Copy _
Sheets("Launch Tracker").Cells(Lig, "E")
Next
Sheets("Launch Tracker").Activate
Application.ScreenUpdating = False
MsgBox "mise à jour réalisée en: " & Round(Timer - Start, 2) & " secondes"
End Sub
'---------------------------------------
Sub concatenate(Feuille, Tablo)
Dim T_coli, T_colp, T_colr, Cptr As Integer
Dim test
With Sheets(Feuille)
'memorizing columns H O Q
Derlig = .Columns("H").Find(what:="*", searchdirection:=xlPrevious).Row
T_coli = Application.Transpose(.Range("H3:H" & Derlig))
T_colp = Application.Transpose(.Range("O3:O" & Derlig))
T_colr = Application.Transpose(.Range("Q3:Q" & Derlig))
'concatenate for comparison
ReDim Tablo(UBound(T_colr), 2)
For Cptr = 1 To UBound(T_colr)
Tablo(Cptr, 1) = T_coli(Cptr) & " " & T_colp(Cptr) & " " & T_colr(Cptr)
Tablo(Cptr, 2) = Cptr + 2
Next
End With
End Sub
誰かが私の問題の解決策をお探しですか?
は、事前にありがとう:)
EDIT 11:48
は、実際にコードが実行されますが、それは、私はそれがする必要があるように動作しません。 H、O、Qの3つの列が同じ場合は、LAT - Masterデータシートからシート起動ロッカーの情報を更新したいと思います。問題は私がチェックして、LAT - Master Dataシートにあるいくつかの行が、マクロを実行した後でLaunch trackerシートに追加されていないことです。なぜ誰かが考えているのですか?
ガット
正確にはどのような問題がありますか? – arcadeprecinct
この部分のバグReDim Tablo(UBound(T_colr)、2) – MopMop
「バグ」とはどういう意味ですか?どのようなエラーが出ますか? – arcadeprecinct