Developper un code Macro condition
Résolu
nonossov
Messages postés
610
Date d'inscription
Statut
Membre
Dernière intervention
-
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
Frenchie83 Messages postés 2240 Date d'inscription Statut Membre Dernière intervention -
Bonjour mes amis,
veuillez m'aider a développer cette macro? voila le code:
l'objet de la macro est: Donner un tableau d'alerte contient toutes les entreprises qui j'ai pas encore payé leurs impôts, l'alerte commence 10 jour avant la date de paiement sinon il n'affiche pas.
voila le fichier ci-joint explique la tache, mais l'ordre de son travail ne marche pas,
si vous avez d'autre questions merci de les poser,
cordialement
http://www.cjoint.com/c/EGjnvxyeYzy
veuillez m'aider a développer cette macro? voila le code:
l'objet de la macro est: Donner un tableau d'alerte contient toutes les entreprises qui j'ai pas encore payé leurs impôts, l'alerte commence 10 jour avant la date de paiement sinon il n'affiche pas.
voila le fichier ci-joint explique la tache, mais l'ordre de son travail ne marche pas,
si vous avez d'autre questions merci de les poser,
cordialement
http://www.cjoint.com/c/EGjnvxyeYzy
Sub tax()
Dim tx As String
Dim tx2 As String
Dim tx3 As String
Dim tx4 As String
Dim tx5 As String
Dim ans As Integer
Dim tgt As Date
Dim alt As Double
Dim i As Long
tgt = Format(Date, "dd/mm/yyyy")
Range("B2").Select
For i = 1 To 4
If i = 1 Then
Do
alt = ActiveCell.Offset(0, 1).Value - tgt
If ActiveCell.Value = "" And alt < 0 Then
tx5 = ActiveCell.Offset(0, -1).Value & " (" & Range("B1").Value & ")" & " - " & "[ " & -1 * alt & "]" & " Days Over due "
If MsgBox("Did you pay tax for this" & vbCrLf & tx5, vbYesNo) = vbYes Then
ActiveCell.Value = "x"
Else
End If
End If
If ActiveCell.Value = "" And alt <= 10 Then
tx = tx + vbCrLf + ActiveCell.Offset(0, -1).Value & " (" & Range("B1").Value & ")" & " - " & "[ " & alt & "]" & " Days left to pay "
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Offset(1, -1).Value = ""
ElseIf i = 2 Then
Range("D2").Select
Do
alt = ActiveCell.Offset(0, 1).Value - tgt
If ActiveCell.Value = "" And alt < 0 Then
tx5 = ActiveCell.Offset(0, -3).Value & " (" & Range("D1").Value & ")" & " - " & "[ " & alt & "]" & " Days left to pay "
If MsgBox("Did you pay tax for this" & vbCrLf & tx5, vbYesNo) = vbYes Then
ActiveCell.Value = "x"
Else
End If
End If
If ActiveCell.Value = "" And alt <= 10 Then
tx2 = tx2 + vbCrLf + ActiveCell.Offset(0, -3).Value & " (" & Range("D1").Value & ")" & " - " & "[ " & alt & "]" & " Days left to pay "
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Offset(1, -1).Value = ""
ElseIf i = 3 Then
Range("F2").Select
Do
alt = ActiveCell.Offset(0, 1).Value - tgt
If ActiveCell.Value = "" And alt < 0 Then
tx5 = ActiveCell.Offset(0, -5).Value & " (" & Range("F1").Value & ")" & " - " & "[ " & alt & "]" & " Days left to pay "
If MsgBox("Did you pay tax for this" & vbCrLf & tx5, vbYesNo) = vbYes Then
ActiveCell.Value = "x"
Else
End If
End If
If ActiveCell.Value = "" And alt <= 10 Then
tx3 = tx3 + vbCrLf + ActiveCell.Offset(0, -5).Value & " (" & Range("F1").Value & ")" & " - " & "[ " & alt & "]" & " Days left to pay "
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Offset(1, -1).Value = ""
ElseIf i = 4 Then
Range("H2").Select
Do
alt = ActiveCell.Offset(0, 1).Value - tgt
If ActiveCell.Value = "" And alt < 0 Then
tx5 = ActiveCell.Offset(0, -7).Value & " (" & Range("H1").Value & ")" & " - " & "[ " & alt & "]" & " Days left to pay "
If MsgBox("Did you pay tax for this" & vbCrLf & tx5, vbYesNo) = vbYes Then
ActiveCell.Value = "x"
Else
End If
End If
If ActiveCell.Value = "" And alt <= 10 Then
tx4 = tx4 + vbCrLf + ActiveCell.Offset(0, -7).Value & " (" & Range("H1").Value & ")" & " - " & "[ " & alt & "]" & " Days left to pay "
End If
ActiveCell.Offset(1, 0).Select
Loop Until ActiveCell.Offset(1, -1).Value = ""
End If
Next
MsgBox tx & vbCrLf & tx2 & vbCrLf & tx3 & vbCrLf & tx4
End Sub
A voir également:
- Developper un code Macro condition
- Code ascii - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Excel cellule couleur si condition texte - Guide
- Code puk bloqué - Guide
- Code activation windows 10 - Guide
3 réponses
Bonjour
le temps de travail de l'alerte est 10 jours avant la date de paiement et 10 après la date de paiement, +1.+2+3...+10 ou -1.-2.-3...10 . J'ai appliqué une petite correction dans les MFC du tableau.Dites-moi si c'est bon.
Pour ce qui est de la présentation du tableau final, Ce que vous voulez, c'est tout simplement une présentation verticale du tableau d'origine, je n'ai donc pas choisi la présentation que vous proposiez (trop lourd à mettre en oeuvre). j'ai simplement opté pour la restitution du résultat dans une feuille à part qui aura le même effet. Essayez
https://www.cjoint.com/c/EGoekKd54Ww
Cdlt
le temps de travail de l'alerte est 10 jours avant la date de paiement et 10 après la date de paiement, +1.+2+3...+10 ou -1.-2.-3...10 . J'ai appliqué une petite correction dans les MFC du tableau.Dites-moi si c'est bon.
Pour ce qui est de la présentation du tableau final, Ce que vous voulez, c'est tout simplement une présentation verticale du tableau d'origine, je n'ai donc pas choisi la présentation que vous proposiez (trop lourd à mettre en oeuvre). j'ai simplement opté pour la restitution du résultat dans une feuille à part qui aura le même effet. Essayez
https://www.cjoint.com/c/EGoekKd54Ww
Cdlt
Bonjour
l'ordre de son travail ne marche pas
Normal, vous décalez 2 fois à chaque boucle, 1 fois en sélectionnant la cellule, puis une deuxième fois dans la boucle
A remplacer par
A tester
Cdlt
l'ordre de son travail ne marche pas
Normal, vous décalez 2 fois à chaque boucle, 1 fois en sélectionnant la cellule, puis une deuxième fois dans la boucle
ActiveCell.Offset(1, 0).Select Loop Until ActiveCell.Offset(1, -1).Value = ""
A remplacer par
ActiveCell.Offset(1, 0).Select Loop Until ActiveCell.Offset(0, -1).Value = ""
A tester
Cdlt
Bonjour
Cela vient du format "DATE" que vous avez appliquez à la variable "TGT" . Vous forcez le format avec "mm/dd/yyyy" alors que les dates dans le tableau sont au format "dd/mm/yyyy" , il faut faire un choix. Ou bien, vous mettez
Cdlt
Cela vient du format "DATE" que vous avez appliquez à la variable "TGT" . Vous forcez le format avec "mm/dd/yyyy" alors que les dates dans le tableau sont au format "dd/mm/yyyy" , il faut faire un choix. Ou bien, vous mettez
tgt = Format(Date, "dd/mm/yyyy")et vous ne touchez pas au tableau ou alors
tgt = Format(Date, "mm/dd/yyyy"), et vous corrigez les dates du tableau.
Cdlt
Bonsoir
l'inconvénient avec le principe précédent, c'est que vous perdez les informations dès que vous validez le résultat, Je vous propose ici, si ça vous convient, de rajouter un tableau qui conserve l'information en faisant les calculs sur la date avec une mise en forme conditionnelle en fonction des échéances.
https://www.cjoint.com/c/EGlqyxwEkew
cdlt
l'inconvénient avec le principe précédent, c'est que vous perdez les informations dès que vous validez le résultat, Je vous propose ici, si ça vous convient, de rajouter un tableau qui conserve l'information en faisant les calculs sur la date avec une mise en forme conditionnelle en fonction des échéances.
https://www.cjoint.com/c/EGlqyxwEkew
cdlt
Mr frenchie83 merci infiniment pour le travail, vraiment j'ai aime l'idée mais le tableau sera plus long que ça, je préféré si vous permettez d'améliorer le tableau final de la résultat pouvez faire un tableau comme celui là, ci-joint https://www.cjoint.com/c/EGnjyMdFFff
merci infiniment
merci infiniment