VBA

Bonjour à tous !

Je bloque sur plusieurs points depuis de longues heures.

J'ai une grille horaire en Feuil18 que je transforme en Feuil17 avec une mise en page spécifique.

Je bloque sur le mise en page de la feuil17 ( pour une meilleur compréhension je vous transmet le fichier avec ma feuil17 et le code intégrale).

Mon code VBA se trouve dans la Feuil17.

Voici les 3 points sur lesquels je bloque actuellement:

1) Extraire les deux chiffres du milieu d'une cellule en contenant 6 et les copier dans une autre cellule de mon fichier:

Dans ma Feuil17 ( memLigne -2,7) j'ai des numéros à 6 chiffres exemple : 123456

Je souhaite extraire les deux chiffres du milieu à savoir dans mon exemple : 34 et les copier deux cellules plus à gauche à savoir Feuil17.Cells(memLigne - 2, 5).Value

J'ai testé un bout de code ci-dessous mais rien ne se passe.

Feuil17.Cells(memLigne - 2, 5).Value = Tampon = Feuil17.Cells(memLigne - 2, 7).Text, 3 )

2) Appliquer une condition => Si une cellule est supérieur ou = à minuit alors annoter un "O" dans une de mes cellules Feuil17

Détails:

A l'application de mon code ci-dessous rien de se passe:

If Feuil17.Cells(memLigne -1, 2).Value > Format(Feuil17.Cells(5, 6).Value, "hhmmss") Then

Feuill7.Cells(memLigne - 2, 5).Value = "O"

3) Appliquer une condition en fonction du 4ème chiffre de la Feuil17.Cells(memLigne - 2, 7). tester si la valeur de ce chiffre est pair ou impair et y appliquer une condition :

Code à insérer dans la partie Test Pair de mon code VBA :

If Feuil17.Cells(memLigne - 2, 7).Text, 4 ) = Impair

Feuil17.Cells(memLigne -2, 5).Value = Feuil17.Cells(12, 5).Value

Else

'si ça n'est pas Impair et donc Pair

Feuil17.Cells(memLigne -2, 5).Value = Feuil17.Cells(14, 5).Value

Code à insérer dans la partie Test impair de mon code VBA :

If Feuil17.Cells(memLigne - 2, 7).Text, 4 ) = Pair

Feuil17.Cells(memLigne -2, 5).Value = Feuil17.Cells(13, 5).Value

Else

'si ça n'est pas Pair mais donc Impair

Feuil17.Cells(memLigne -2, 5).Value = Feuil17.Cells(15, 5).Value

En espérant avoir expliqué le plus clairement possible mes besoins.

Cela fait beaucoup de questions mais je bloque sérieusement.

Merci d'avance.

Bonne journée

12grille-horaire1.xlsm (255.13 Ko)

Bonjour,

Avant d'entrer dans le détail de tes questions ...

Pourquoi ta macro ne se trouve-t-elle pas dans un module standard ...???

A titre d'exemple, pour ta première question ... tu pourrais tester :

Feuil17.Cells(memLigne - 2, 7).FormulaR1C1 = "=MID(RC[2],3,2)"

Mais globalement ... j'ai l'impression que tu te compliques la vie ...

Bonjour James007,

Merci beaucoup pour ton coup de main pour ma première question, ça fonctionne parfaitement !

Effectivement, il est fort probable que je me complique la vie, je suis débutant en VBA et très loin de faire des structures de code propres.

J'ai mis mon code par défaut dans la Feuil17, quitte à le déplacer ultérieurement dans un module standard.

Aurais-tu des éléments concernant mon point 2 et 3 ? ( je sais j'en demande beaucoup, mais je bloque vraiment...).

Pour le point 2 : Appliquer une condition => Si Feuil17.Cells(memLigne - 1, 2) est supérieur ou = à minuit alors annoter un "O" dans une de mes cellules en l'occurrence Feuil17.Cells(memLigne - 2, 5)

Pour le point 3 => Appliquer une condition en fonction du 4ème chiffre de la Feuil17.Cells(memLigne - 2, 7). tester si la valeur de ce chiffre est pair ou impair et y appliquer une condition :

J'ai trouver ce bout de code mais suis incapable de la mettre correctement en forme:

'Function ISPAIR(Nb As Long) As Boolean

'ISPAIR = Nb Mod 2 = 0

Merci d'avance.

Bonne soirée

Bonjour,

J'ai mis mon code par défaut dans la Feuil17, quitte à le déplacer ultérieurement dans un module standard.

Dans le module d'une Feuille ... on stocke les macros évènementielles ...

Dans un module Standard ... on stocke les macros ... standards ...

D'accord ! Dans ce cas je déplacerai mon code dans le module standard

Bonjour à tous,

Je jette une bouteille à la mer, quelqu'un aurait-il une réponse à ma question 2 et 3 ?

Pour rappel, je suis débutant en VBA merci donc de votre indulgence.

Vous retrouverez le fichier en PJ.

Pour le point 2 :

Appliquer une condition => Si Feuil17.Cells(memLigne - 1, 2) est >= à minuit alors annoter un "O"si cette condition est True dans une de mes cellules en l'occurrence Feuil17.Cells(memLigne - 2, 5)

Pour le point 3 :

Appliquer une condition en fonction du 4ème chiffre de la Feuil17.Cells(memLigne - 2, 7). tester si la valeur de ce chiffre est pair ou impair et y appliquer une condition :

Exemple de code à insérer dans mon module impair mais cela ne fonctionne pas.

If Feuil17.Cells(memLigne - 2, 7) MID(RC[2],4,1) = Pair

Feuille17.Cells(11, 5) = True

J'ai trouver ce bout de code mais suis incapable de la mettre correctement en forme:

'Function ISPAIR(Nb As Long) As Boolean

'ISPAIR = Nb Mod 2 = 0

Merci d'avance pour votre aide.

Bonne soirée à tous !

Bonjour,

Des éléments pour alimenter ta réflexion ...

Sub TestSpike29()

' Point 1

Feuil17.Cells(memLigne - 2, 7).FormulaR1C1 = "=MID(RC[2],3,2)"

'Point 2

If Feuil17.Cells(memLigne - 1, 2) - Int(Feuil17.Cells(memLigne - 1, 2)) <= 0.25 Then Feuil17.Cells(memLigne - 2, 5) = 0

'Point 3

If Feuil17.Cells(memLigne - 2, 7) Mod 2 = 0 Then MsgBox "Nombre Pair"

End Sub

En espèrant que cela t'aide

Rechercher des sujets similaires à "vba"