H4cR0
Messages postés3Date d'inscriptionvendredi 2 février 2018StatutMembreDernière intervention14 février 2018
-
Modifié le 14 févr. 2018 à 12:16
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018
-
15 févr. 2018 à 01:59
Bonjour je suis débutant dans le Visual Basic et j'ai besoin d'aide et de conseil sur une macro.
Voila dans le cadre d'un stage, je dois créer une macro qui quand je met " absent " dans la feuille 1 à une date sur une ligne précise et un ID dans une colonne précise, que ça m'emmène a la feuille 2 et me propose de rentrer le type de congé a la même date et même ID auquel cela a été mis dans la feuille 1, et inversement lorsque quelque chose est mis dans la feuille 2, il faut que " absent " soit inscrit dans la même cellule Date = Date et ID = ID, sans trop utiliser de formule excel.
Pour l'instant mon problème est que je n'arrive pas a faire cette recherche de cellule avec la méthode find.
Est-ce que quelqu'un pourrais m'aider et me conseiller et est-ce qu'il existe une autre moyen, méthode de parvenir a ce résultat ?
Je me suis inspiré d'une macro déjà faite mais je n'arrive pas a mes fins
Je vous fais part de mon code et du fichier excel pour que ce sois plus clair pour vous.
Merci ^^'
Option Compare Text
Dim Absence Dim FpChantier, FpConge As Worksheet Dim matricule As Integer Dim ab As String Dim cell As Range Dim i&, j&, ln&, dte As Date, n&, tc
Sub Worksheet_change(ByVal Target As Range)
Set FpConge = Sheets("Planning_Congé") Set FpChantier = Sheets("Planning_chantier")
'si Absent est entré dans la cellule 'alors dans Planning congé 'entre le type d'absence dans planning congé
If Target = "Absent" Then
Worksheets("Planning_congé").Activate
''' 'recherche de la cellule correspondante au matricule et date ''' matricule = FpChantier.Cells(5, Rows.Count).End(xlToLeft).Rows For j = 6 To matricule - 4 Step 1 On Error Resume Next ab = FpChantier.Cells(7, f).Value
If Err > 0 Then Exit For Set cell = FpConge.Range("H7:AH750").Find(ab, lookat:=xlWhole)
If Not cell Is Nothing Then tc = cell.Offset(0, 1).Select n = InStr(2, cell.Offset(1, 0), " ") dte = CDate(Mid(cell.Offset(1, 0), n + 1, 20))
For i = 7 To FpChantier.Range("C" & Rows.Count).End(xlUp).Row
If FpChantier.Range("C" & i) = dte Then Exit For End If
ucfoutu
Messages postés18038Date d'inscriptionlundi 7 décembre 2009StatutModérateurDernière intervention11 avril 2018219 Modifié le 15 févr. 2018 à 02:00
Bonjour
Enormément (trop) de maladresses et fautes ...
A commencer par celle-ci ;