Explication code VBA

modeVBA -  
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

J'aurais besoin qu'on m'explique le code VBA ci-dessous car j'aimerais l'intégrer à un tableau que j'ai créé sur Excel.


Sub Heure()

'Recherche de l'heure de lancement
    Worksheets("Planning").Activate
    Dim Reponse_2 As Variant
    Message = "Heure de lancement :"          'Définit le message                                            ' message.
    Title = "Heure de début "                                   'Définit le titre.
                                             'Affecte la machine systeme par default
    Reponse_2 = InputBox(Message, Title, Default)             'Recupere la valeur dans reponse
    
    If Reponse_2 <> "" Then                                 'Test si reponse est different de vide
    
    'Worksheets("Planning").Activate
    
     Cells.Find(What:=Reponse_2, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    
   ActiveCell.Offset(1, 0).Select
    Dim l_1 As Variant
        l_1 = (ActiveCell.Row)
        Dim c_1 As Variant
        c_1 = (ActiveCell.Column)
        
    If (c_1 + d) > 24 Then
    Range(Cells(l_1, c_1), Cells(l_1, 24)).Select
    Range(Cells(l_1, c_1), Cells(l_1, 24)).Interior.ColorIndex = 7
    
    Dim sup As Variant
    sup = (((c_1 + d) - 24) - 1)
    Worksheets("Planning").Select
    Range("F25").Select
    Cells.Find(What:=Reponse_1, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.Select
    ActiveCell.Offset(1, 0).Select
    Dim j1 As String
    j1 = ActiveCell
    Worksheets("Planning").Activate
    Cells.Find(What:=j1, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.Select
     Cells.Find(What:=1, After:=ActiveCell, LookIn:=xlFormulas, _
        LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
        MatchCase:=False, SearchFormat:=False).Activate
    ActiveCell.Offset(1, 0).Select
    Dim l_2 As Variant
        l_2 = (ActiveCell.Row)
        Dim c_2 As Variant
        c_2 = (ActiveCell.Column)
    Range(Cells(l_2, c_2), Cells(l_2, c_2 + sup)).Select
    Range(Cells(l_2, c_2), Cells(l_2, c_2 + sup)).Interior.ColorIndex = 7
    Else
    Range(Cells(l_1, c_1), Cells(l_1, c_1 + d)).Select
    Range(Cells(l_1, c_1), Cells(l_1, c_1 + d)).Interior.ColorIndex = 7
    End If
        
End If
10

Planifier.Show

End Sub


Je me suis vite perdue en modifiant à plusieurs reprises l'emplacements de certaines cellules, ce qui explique qu'après l'avoir intégré à mon tableau cela ne fonctionne pas comme je le souhaite.
Merci par avance pour toutes réponses même partielles.

Cordialement,

Une amatrice en VBA

A voir également:

2 réponses

f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Bonjour,

J'aurais besoin qu'on m'explique le code VBA ci-dessous

Y en a pas !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
0
modeVBA
 
Bonjour,
Je viens de modifier ma demande, le code devrais donc apparaitre.
Cordialement,
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713
 
Re,

ce qui explique qu'après l'avoir intégré à mon tableau cela ne fonctionne pas comme je le souhaite. Ben, ce qui nous interesserait, c'est ce que vous souhaitez et votre fichier sans donnees sensibles car le code presente est pour le moins curieux
0
modeVBA
 
Re,
Comment faire pour vous joindre mon fichier excel ?
Dans ce cas vous auriez plus de facilité à comprendre les explications que je vous donnerais.
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > modeVBA
 
Pour transmettre un fichier,
il faut passer par un site de pièce jointe tel que cjoint.com

Allez sur ce site : https://www.cjoint.com/
Clic sur parcourir,
Cherche ton fichier,
clic sur ouvrir,
Clic sur "Créer le lien cjoint",
Copier le lien,
Revenir ici le coller dans une réponse...
0
modeVBA > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Merci le voici: http://cjoint.com/?0EApxrv25Wp
Pour l'explication: je désire que la "durée total" indiquée permette lorsque je clic sur le boutton créé que la plage horaire se colorie automatiquement à partir du début de durée que j'aurais à indiqué grâce à un code VBA et un userform.
J'espère avoir été plus claire.
Merci
0
f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention   1 713 > modeVBA
 
Re,
en principe plage horaire jour: de 0h a 23h pas de 1 a 24 !!!!!

à partir du début de durée que j'aurais à indiqué grâce à un code VBA et un userform. Donc le inputbox est pour le debut et plage a colorier debut + duree total, mais pour quelle(s) lignes car il n'y a qu'un bouton ???

la variable d sort d'ou ????? ex: If (c_6 + d) > 24 Then
0
modeVBA > f894009 Messages postés 17277 Date d'inscription   Statut Membre Dernière intervention  
 
Re,

Effectivement il n'y en a qu'un pour l'instant car je test le code mais mon idée serait d'en créer un à chaque ligne car je ne sais pas faire autrement, donc pour chaque durée liée au "Tth".
Ici mon premier bouton créé correspond donc à la ligne du premier "Tth" à savoir L24 mais le coloriage s'eefectue à la ligne en dessous donc L25.
Pour la plage horaire le 24 correspond à minuit car en effet si je décide que le coloriage débute à 22h et que la durée total est de 6h il faudrait que le coloriage "déborde" à la plage horaire suivante (au jours suivant) jusqu'au niveau de la case "3"
Le "d" dans le code devrait correspondre à la durée.
Je vous remercie de l'intérêt que vous portez à ce travail et j'espère que vous arrivez à me suivre.
0