Intégrer une ou des formule(s) en VBA

Le
JeanYvesGascon
Bonjour à toutes & tous

Je souhaiterai intégrer des formules en VBA afin d'alléger,
d'accélérer mon fichier.

[C6:C3000] sont des lieux à compléter selon une liste déroulante
depuis "Liste_Eta" =Données!$A$2:$A$70
Chaque lieux se terminent par la lettre "E" ou "M".
J'ai entré la formule en I6 suivante =DROITE($C6;1) que j'ai recopiée
en [I6:I3000].
Est il possible d'entrer une formule en vba, plutôt que cette
recopie ?

Je souhaiterai d'une part,
que si en I6 j'ai la lettre "E" alors la colonne [L:L] soit masquée,
que si en I6 j'ai la lettre "M" alors la colonne [J:J] soit masquée.
Est ce possible en vba ?

D'autre part, les trois colonnes J, K, L sont renseignées chacune par
une liste déroulante sur le même principe que ci dessus.
En J nous aurons "BCD", "EPL" et "IC"; en K nous aurons "EPL" et "GR"
et en L nous aurons "BCD" et "ET".
En "M" je souhaiterai que si "BCD", "EPL" sont une des valeurs de J,K
ou L alors inscrire la valeur "NePasRemplacer".
J'ai donc entrer la formule conditionnelle
=SI(OU($J7="bcd";$J7="epl";$K7="epl";$L7="bcd");"NePasRemplacer";=

faire")
Or, j'avais paramétrer les colonnes [A:H] vis à vis de la valeur des
cette colonne M, en fait [M6:M3000], en mise en forme conditionnelle
(MEFC) =ET($B6>=TODAY;ESTVIDE($M6)).
qui du coup n'est plus vide !!!

Est ce envisageable de transcrire tout ceci par de la programmation
VBA ?

D'avance merci pour vos précieuses collaborations ainsi que vos
éclairages salvateurs.

Bon courage

Jean-Yves
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Sam
Le #22363551
Bonjour,
il y a des choses que je ne comprends pas :

"que si en I6 j'ai la lettre "E" alors la colonne [L:L] soit masquée,
"que si en I6 j'ai la lettre "M" alors la colonne [J:J] soit masquée.
pourquoi cacher toute une colonne en fonction de I6, et pourquoi pas en
fonction de I7 ou I8 ?

- en M , faut qu'il y ait absolument jusqu'en bas du tableau une de ces 2
expressions "NePasRemplacer" "à faire"
On peut peut être envisager qu'il n'y ait rien afin que la MFC fonctionne.

- je crois que dans la MFC, la fonction à utiliser est AUJOURDHUI() et non
TODAY()

- la macro qui remplirait tout ça, serait à déclencher à quelle occasion et
comment ?

- on peut aussi envisager tout faire par formule mais avec un calcul sur
ordre (F9) afin de pas perdre de temps

Cordialement
Michel dit "Sam"

"JeanYvesGascon" news:
Bonjour à toutes & tous

Je souhaiterai intégrer des formules en VBA afin d'alléger,
d'accélérer mon fichier.

[C6:C3000] sont des lieux à compléter selon une liste déroulante
depuis "Liste_Eta" =Données!$A$2:$A$70
Chaque lieux se terminent par la lettre "E" ou "M".
J'ai entré la formule en I6 suivante =DROITE($C6;1) que j'ai recopiée
en [I6:I3000].
Est il possible d'entrer une formule en vba, plutôt que cette
recopie ?

Je souhaiterai d'une part,
que si en I6 j'ai la lettre "E" alors la colonne [L:L] soit masquée,
que si en I6 j'ai la lettre "M" alors la colonne [J:J] soit masquée.
Est ce possible en vba ?

D'autre part, les trois colonnes J, K, L sont renseignées chacune par
une liste déroulante sur le même principe que ci dessus.
En J nous aurons "BCD", "EPL" et "IC"; en K nous aurons "EPL" et "GR"
et en L nous aurons "BCD" et "ET".
En "M" je souhaiterai que si "BCD", "EPL" sont une des valeurs de J,K
ou L alors inscrire la valeur "NePasRemplacer".
J'ai donc entrer la formule conditionnelle
=SI(OU($J7="bcd";$J7="epl";$K7="epl";$L7="bcd");"NePasRemplacer";"à
faire")
Or, j'avais paramétrer les colonnes [A:H] vis à vis de la valeur des
cette colonne M, en fait [M6:M3000], en mise en forme conditionnelle
(MEFC) =ET($B6>=TODAY;ESTVIDE($M6)).
qui du coup n'est plus vide !!!

Est ce envisageable de transcrire tout ceci par de la programmation
VBA ?

D'avance merci pour vos précieuses collaborations ainsi que vos
éclairages salvateurs.

Bon courage

Jean-Yves
Sam
Le #22364451
Bonjour,
en attendant d'avoir plus de précisions pour le pb des colonnes cachées et
des cellules de M:M vides
j'ai commencé cette macro pour les lignes 6 à 10 :

Sub remplir_I()
'
'
Dim i As Integer
Dim coffret As Range
For i = 6 To 10

' mise en place de la dernière lettre de C en I
Cells(i, 9).Value = Right(Cells(i, 3).Value, 1)

'commentaire en colonne M fonction du contenu des colonnes J, K , L
'attention sensible à la casse, respecter les majuscules des textes
If (Cells(i, 10).Value = "BCD") Or (Cells(i, 10).Value = "EPL") _
Or (Cells(i, 11).Value = "EPL") Or (Cells(i, 12).Value = "BCD") Then
Cells(i, 13).Value = "NePasRemplacer"
Else
Cells(i, 13).Value = "à faire"
End If

'mise en couleur de A à H
' la condition date est pour l'instant seule utilisée
If (Cells(i, 2).Value >= Date) Then
For Each coffret In Range(Cells(i, 1), Cells(i, 8))
coffret.Interior.ColorIndex = 43
Next coffret
Else
For Each coffret In Range(Cells(i, 1), Cells(i, 8))
coffret.Interior.ColorIndex = xlColorIndexNone
Next coffret
End If

'on y va pour la prochaine ligne
Next i

' cacher colonne
' uniquement fonction de I6
If (Cells(6, 9).Value = "E") Then
Columns("L:L").EntireColumn.Hidden = True
Else
Columns("L:L").EntireColumn.Hidden = False
End If

If (Cells(6, 9).Value = "M") Then
Columns("J:J").EntireColumn.Hidden = True
Else
Columns("J:J").EntireColumn.Hidden = False
End If
End Sub


Cordialement
Michel dit "Sam"

"JeanYvesGascon" news:
Bonjour à toutes & tous

Je souhaiterai intégrer des formules en VBA afin d'alléger,
d'accélérer mon fichier.

[C6:C3000] sont des lieux à compléter selon une liste déroulante
depuis "Liste_Eta" =Données!$A$2:$A$70
Chaque lieux se terminent par la lettre "E" ou "M".
J'ai entré la formule en I6 suivante =DROITE($C6;1) que j'ai recopiée
en [I6:I3000].
Est il possible d'entrer une formule en vba, plutôt que cette
recopie ?

Je souhaiterai d'une part,
que si en I6 j'ai la lettre "E" alors la colonne [L:L] soit masquée,
que si en I6 j'ai la lettre "M" alors la colonne [J:J] soit masquée.
Est ce possible en vba ?

D'autre part, les trois colonnes J, K, L sont renseignées chacune par
une liste déroulante sur le même principe que ci dessus.
En J nous aurons "BCD", "EPL" et "IC"; en K nous aurons "EPL" et "GR"
et en L nous aurons "BCD" et "ET".
En "M" je souhaiterai que si "BCD", "EPL" sont une des valeurs de J,K
ou L alors inscrire la valeur "NePasRemplacer".
J'ai donc entrer la formule conditionnelle
=SI(OU($J7="bcd";$J7="epl";$K7="epl";$L7="bcd");"NePasRemplacer";"à
faire")
Or, j'avais paramétrer les colonnes [A:H] vis à vis de la valeur des
cette colonne M, en fait [M6:M3000], en mise en forme conditionnelle
(MEFC) =ET($B6>=TODAY;ESTVIDE($M6)).
qui du coup n'est plus vide !!!

Est ce envisageable de transcrire tout ceci par de la programmation
VBA ?

D'avance merci pour vos précieuses collaborations ainsi que vos
éclairages salvateurs.

Bon courage

Jean-Yves
Publicité
Poster une réponse
Anonyme