maxcacolac
XLDnaute Nouveau
Bonjour,
Je vous explique mon problème je souhaite automatiser la recopie d’une plage de cellule venant d’une base données.
J’utilise donc 3 critères pour savoir ou la valeur de la cellule doit être recopié.
Les critères sont :
Valeur de la colonne A=1
Valeur de la colonne B de l’extraction = valeur de la colonne B de la destination
valeur de la colonne C de l’extraction correspond à du texte et en fonction de ce texte je met en mémoire la valeur dans une « boite ».
une fois toutes les possibilités regardé je vais recopier la valeur de la boite ou des boites dans le tableau de destination.
Comme vous l’aurez sûrement compris, une fois que j’ai récupéré la valeur et qu’elle est recopiée elle peut être supprimée.
Le problème est que je boucle sur 3000 cellules, et je n’arrive pas à remettre les boites à 0 lorsque je l’ai ai recopié.
Cela ne se produit que pour certaines cellules aidez moi svp.
ps je suis debutant
voici un extrait de mon code
Sub nouveautestmardimatinversiondetravail()
Dim t As Integer, x As Integer
Dim mabou As Integer, macoq As Integer, mapar As Integer, mapein As Integer, mapiec As Integer, _
mak01 As Integer, mak38 As Integer, mak40 As Integer, mak89 As Integer, mak90 As Integer, _
mamor As Integer, maboi As Integer, masac As Integer, mamor99 As Integer, _
mak02 As Integer, mak80 As Integer, matk11 As Integer, mazoz As Integer, mazont As Integer
Application.ScreenUpdating = False
For t = 306 To 555
For x = 27 To 285
If Cells(t, 1).Value = "1" Then
If Cells(t, 2).Value = Cells(x, 2).Value Then
Select Case Cells(t, 3).Text
Case "Boi": maboi = Cells(t, 4).Value
Case "Sac": masac = Cells(t, 4).Value
Case "Bou": mabou = Cells(t, 4).Value
Case "Coq": macoq = Cells(t, 4).Value
Case "Mor": mamor = Cells(t, 4).Value
Case "Mor99": mamor99 = Cells(t, 4).Value
Case "Par": mapar = Cells(t, 4).Value
Case "Pei": mapei = Cells(t, 4).Value
Case "Piec": mapiec = Cells(t, 4).Value
Case "k01": mak01 = Cells(t, 4).Value
Case "k02": mak02 = Cells(t, 4).Value
Case "k38": mak38 = Cells(t, 4).Value
Case "k40": mak40 = Cells(t, 4).Value
Case "k80": mak80 = Cells(t, 4).Value
Case "k89": mak89 = Cells(t, 4).Value
Case "k90": mak90 = Cells(t, 4).Value
Case "TK11": matk11 = Cells(t, 4).Value
Case "ZONEz": mazonz = Cells(t, 4).Value
Case "ZONEt": mazont = Cells(t, 4).Value
End Select
Cells(x, 3) = maboi + masac + mabou + mak02
Cells(x, 4) = macoq + mapein
Cells(x, 5) = mapar + mapie + mamor + mamor
Cells(x, 6) = mak01 + matk11
Cells(x, 7) = mak38 + mak40
Cells(x, 8) = mak80 + mak89 + mak90 + mazonz + mazont
End If
End If
If Cells(t, 1).Value = "7" Then
Exit Sub
End If
If Cells(t, 1).Value = "8" Then
Exit Sub
End If
If Cells(t, 1).Value = "9" Then
Exit Sub
End If
Next x
Next t
End Sub
Je vous explique mon problème je souhaite automatiser la recopie d’une plage de cellule venant d’une base données.
J’utilise donc 3 critères pour savoir ou la valeur de la cellule doit être recopié.
Les critères sont :
Valeur de la colonne A=1
Valeur de la colonne B de l’extraction = valeur de la colonne B de la destination
valeur de la colonne C de l’extraction correspond à du texte et en fonction de ce texte je met en mémoire la valeur dans une « boite ».
une fois toutes les possibilités regardé je vais recopier la valeur de la boite ou des boites dans le tableau de destination.
Comme vous l’aurez sûrement compris, une fois que j’ai récupéré la valeur et qu’elle est recopiée elle peut être supprimée.
Le problème est que je boucle sur 3000 cellules, et je n’arrive pas à remettre les boites à 0 lorsque je l’ai ai recopié.
Cela ne se produit que pour certaines cellules aidez moi svp.
ps je suis debutant
voici un extrait de mon code
Sub nouveautestmardimatinversiondetravail()
Dim t As Integer, x As Integer
Dim mabou As Integer, macoq As Integer, mapar As Integer, mapein As Integer, mapiec As Integer, _
mak01 As Integer, mak38 As Integer, mak40 As Integer, mak89 As Integer, mak90 As Integer, _
mamor As Integer, maboi As Integer, masac As Integer, mamor99 As Integer, _
mak02 As Integer, mak80 As Integer, matk11 As Integer, mazoz As Integer, mazont As Integer
Application.ScreenUpdating = False
For t = 306 To 555
For x = 27 To 285
If Cells(t, 1).Value = "1" Then
If Cells(t, 2).Value = Cells(x, 2).Value Then
Select Case Cells(t, 3).Text
Case "Boi": maboi = Cells(t, 4).Value
Case "Sac": masac = Cells(t, 4).Value
Case "Bou": mabou = Cells(t, 4).Value
Case "Coq": macoq = Cells(t, 4).Value
Case "Mor": mamor = Cells(t, 4).Value
Case "Mor99": mamor99 = Cells(t, 4).Value
Case "Par": mapar = Cells(t, 4).Value
Case "Pei": mapei = Cells(t, 4).Value
Case "Piec": mapiec = Cells(t, 4).Value
Case "k01": mak01 = Cells(t, 4).Value
Case "k02": mak02 = Cells(t, 4).Value
Case "k38": mak38 = Cells(t, 4).Value
Case "k40": mak40 = Cells(t, 4).Value
Case "k80": mak80 = Cells(t, 4).Value
Case "k89": mak89 = Cells(t, 4).Value
Case "k90": mak90 = Cells(t, 4).Value
Case "TK11": matk11 = Cells(t, 4).Value
Case "ZONEz": mazonz = Cells(t, 4).Value
Case "ZONEt": mazont = Cells(t, 4).Value
End Select
Cells(x, 3) = maboi + masac + mabou + mak02
Cells(x, 4) = macoq + mapein
Cells(x, 5) = mapar + mapie + mamor + mamor
Cells(x, 6) = mak01 + matk11
Cells(x, 7) = mak38 + mak40
Cells(x, 8) = mak80 + mak89 + mak90 + mazonz + mazont
End If
End If
If Cells(t, 1).Value = "7" Then
Exit Sub
End If
If Cells(t, 1).Value = "8" Then
Exit Sub
End If
If Cells(t, 1).Value = "9" Then
Exit Sub
End If
Next x
Next t
End Sub