Explication code VBA
modeVBA
-
Modifié par pijaku le 26/05/2015 à 15:18
f894009 Messages postés 17277 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 juillet 2025 -
f894009 Messages postés 17277 Date d'inscription dimanche 25 novembre 2007 Statut Membre Dernière intervention 31 juillet 2025 -
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.
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
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:
- Explication code VBA
- Code ascii - Guide
- Code puk bloqué - Guide
- Comment déverrouiller un téléphone quand on a oublié le code - Guide
- Code activation windows 10 - Guide
- Code blocks - Télécharger - Langages
2 réponses
f894009
Messages postés
17277
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 juillet 2025
1 715
26 mai 2015 à 14:05
26 mai 2015 à 14:05
Bonjour,
J'aurais besoin qu'on m'explique le code VBA ci-dessous
Y en a pas !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
J'aurais besoin qu'on m'explique le code VBA ci-dessous
Y en a pas !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
f894009
Messages postés
17277
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 juillet 2025
1 715
26 mai 2015 à 14:38
26 mai 2015 à 14:38
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
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
f894009
Messages postés
17277
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 juillet 2025
1 715
>
modeVBA
26 mai 2015 à 15:13
26 mai 2015 à 15:13
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...
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...
modeVBA
>
f894009
Messages postés
17277
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 juillet 2025
26 mai 2015 à 15:27
26 mai 2015 à 15:27
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
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
f894009
Messages postés
17277
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 juillet 2025
1 715
>
modeVBA
Modifié par f894009 le 26/05/2015 à 16:04
Modifié par f894009 le 26/05/2015 à 16:04
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
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
modeVBA
>
f894009
Messages postés
17277
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
31 juillet 2025
26 mai 2015 à 16:22
26 mai 2015 à 16:22
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.
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.
26 mai 2015 à 14:16
Je viens de modifier ma demande, le code devrais donc apparaitre.
Cordialement,