XL 2016 formule avec bouton

richardlion

XLDnaute Occasionnel
bonjour a tous,

je cherche a conjuguer formules =si(estvide) avec une une action bouton active x.

j'ai un fichier avec des colonnes secu et capa qui se remplissent automatiquement est des colonnes securite capacite.
je souhaiterais en appuyant sur mon bouton active x qu'une formule si(estvide) fonctionne sur plusieurs cellules.
dans le e cas présent du fichier ci joint.
avec le bouton active x exportation
je souhaite que si ma cellule H8 est vide qu'elle prenne la valeur de E8 sinon H8 et si ma cellule I8 est vide quelle prenne la valeur de F8 sinon I8.

je n'arrive a pas conjuguer le bouton et la formule.

si vous pouvez m'aider.

a votre disposition pour echange
 

Pièces jointes

  • Classeur1.xlsx
    14.9 KB · Affichages: 10

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Richardlion,
Un essai en PJ avec :
VB:
Private Sub ToggleButton1_Click()
    If [H8] = "" Then [H8] = [E8]
    If [I8] = "" Then [I8] = [F8]
End Sub
et si l'idée était de faire la même chose sur toute les valeurs du tableau, alors :
Code:
Sub Exportation()
Application.ScreenUpdating = False
DL = [A65500].End(xlUp).Row
For L = 8 To DL
    If Cells(L, "H") = "" Then Cells(L, "H") = Cells(L, "E")
    If Cells(L, "I") = "" Then Cells(L, "I") = Cells(L, "F")
Next L
End Sub
 

Pièces jointes

  • Classeur1 (7).xlsm
    20.9 KB · Affichages: 6

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Richardlion, Toofatboy,
En post #2, il y avait deux ex suivant ce que vous vouliez faire. Je suppose que c'est la 2eme solution qui vous va.
Dans votre PJ la colonne A est vide donc ça ne peut pas marcher, et votre PJ est bourrée d'erreur difficile de s'en sortir? La prochaine fois donnez une PJ où il n'y a pas d'erreur.
Essayez :
VB:
Sub Exportation()
Application.ScreenUpdating = False
DL = [AH65500].End(xlUp).Row    ' dernière ligne, prendre une colonne sans erreur
For L = 18 To DL                ' Le tableau commence en 18
    If Cells(L, "BB") = "" And Not IsError(Cells(L, "AX")) Then Cells(L, "BB") = Cells(L, "AX")
    If Cells(L, "BD") = "" And Not IsError(Cells(L, "AY")) Then Cells(L, "BD") = Cells(L, "AY")
Next L
End Sub
J'ai choisi la colonne AH pour trouver la dernière ligne du tableau car cette colonne n'a pas d'erreur; Et je vérifie s'il n'y a pas d'erreur en AX AY avant de copier.
"L" est la ligne à traiter, elle va de 18 ( première ligne ), à la dernière ligne calculée par DL.
 

Statistiques des forums

Discussions
313 197
Messages
2 096 109
Membres
106 500
dernier inscrit
mmontagu