Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

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.
 

richardlion

XLDnaute Occasionnel
Sylvanu,
merci pour ton aide, en fait dans ma PJ j'ai effacé toutes les données c'est pour çà qu'il ya des erreurs je suppose.
donc je dois copier ta macro dans ma vrai feuille de travail et le bouton déclenchera la macro?
 

Discussions similaires

Réponses
11
Affichages
382
Réponses
7
Affichages
273
  • Résolu(e)
Microsoft 365 Formule SI
Réponses
4
Affichages
368
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…