VBA
Résolu/Fermé
Farfadet88
Messages postés
6295
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
4 février 2025
-
9 sept. 2009 à 13:52
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 17 sept. 2009 à 14:07
Polux31 Messages postés 6917 Date d'inscription mardi 25 septembre 2007 Statut Membre Dernière intervention 1 novembre 2016 - 17 sept. 2009 à 14:07
7 réponses
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
9 sept. 2009 à 14:04
9 sept. 2009 à 14:04
Bonjour,
Ou se trouve le "panel" (feuille Excel, UserForm)?
Quel type de controle est-ce (textbox, combobox, checkbox) ?
;o)
Ou se trouve le "panel" (feuille Excel, UserForm)?
Quel type de controle est-ce (textbox, combobox, checkbox) ?
;o)
Farfadet88
Messages postés
6295
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
4 février 2025
1 370
9 sept. 2009 à 14:34
9 sept. 2009 à 14:34
Alors c'est tout simple, l'ensemble des "ok" s'affichent dans différentes cases sur une feuille excel (disons par exemple, A1, A2 et A3)
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
9 sept. 2009 à 14:56
9 sept. 2009 à 14:56
Test ça :
;o)
Sub testCellule() Dim plage As Range Dim cl Set plage = Worksheets(1).Range("A1:A3") For Each cl In plage If cl.Value = "" Then MsgBox "Toutes les cases ne sont pas renseignées !!!" Exit Sub End If Next cl End Sub
;o)
Farfadet88
Messages postés
6295
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
4 février 2025
1 370
9 sept. 2009 à 15:08
9 sept. 2009 à 15:08
voilà ce sur quoi j'étais parti, ca marche mais je n'arrive pas à ne pas réaliser l'action lorsque la msgbox s'affiche
Sub Valider()
Sheets("accueil").Select
If Range("d16").Value <> "OK" Then If Range("d18").Value <> "OK" Then If Range("d20").Value <> "OK" Then If Range("d22").Value <> "OK" Then If Range("H16").Value <> "OK" Then If Range("H18").Value <> "OK" Then If Range("H20").Value <> "OK" Then If Range("H22").Value <> "OK" Then MsgBox ("Veuillez répondre aux questions de l'ensemble des questionnaires") Else
Sheets("Comparatif").Select
ActiveSheet.Unprotect
Range("b65536").End(xlUp).Offset(1, 0) = Range("i2")
Range("b65536").End(xlUp).Locked = True
Range("c65536").End(xlUp).Offset(1, 0) = Range("j2")
Range("c65536").End(xlUp).Locked = True
Range("d65536").End(xlUp).Offset(1, 0) = Range("k2")
Range("d65536").End(xlUp).Locked = True
End Sub
Le problème vient de mon Else je pense mais je ne vois pas comment faire pour ne pas réaliser la partie en gras si la Msgbox s'affiche
Sub Valider()
Sheets("accueil").Select
If Range("d16").Value <> "OK" Then If Range("d18").Value <> "OK" Then If Range("d20").Value <> "OK" Then If Range("d22").Value <> "OK" Then If Range("H16").Value <> "OK" Then If Range("H18").Value <> "OK" Then If Range("H20").Value <> "OK" Then If Range("H22").Value <> "OK" Then MsgBox ("Veuillez répondre aux questions de l'ensemble des questionnaires") Else
Sheets("Comparatif").Select
ActiveSheet.Unprotect
Range("b65536").End(xlUp).Offset(1, 0) = Range("i2")
Range("b65536").End(xlUp).Locked = True
Range("c65536").End(xlUp).Offset(1, 0) = Range("j2")
Range("c65536").End(xlUp).Locked = True
Range("d65536").End(xlUp).Offset(1, 0) = Range("k2")
Range("d65536").End(xlUp).Locked = True
End Sub
Le problème vient de mon Else je pense mais je ne vois pas comment faire pour ne pas réaliser la partie en gras si la Msgbox s'affiche
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
9 sept. 2009 à 15:47
9 sept. 2009 à 15:47
Tu ajoutes Exit Sub juste après MsgBox ...
Tu as trop de If imbriqués, utilise plutôt Or :
If Range("d16").Value <> "OK" Or Range("d18").Value <> "OK" Or Range("d20").Value <> "OK" ... Then
MsgBox ("Veuillez répondre aux questions de l'ensemble des questionnaires")
Exit Sub
Else
.....
End If
;o)
--
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Tu as trop de If imbriqués, utilise plutôt Or :
If Range("d16").Value <> "OK" Or Range("d18").Value <> "OK" Or Range("d20").Value <> "OK" ... Then
MsgBox ("Veuillez répondre aux questions de l'ensemble des questionnaires")
Exit Sub
Else
.....
End If
;o)
--
«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
Farfadet88
Messages postés
6295
Date d'inscription
lundi 28 janvier 2008
Statut
Membre
Dernière intervention
4 février 2025
1 370
17 sept. 2009 à 13:51
17 sept. 2009 à 13:51
Ok merci.
Dernier petit bug de mon outil, j'ai créé une macro qui copie la valeur d'une textbox dans une case excel mais le souci est qu'elle la prends en compte en tant que texte et non en tant que nombre. Du coup tous mes calculs sont faussés. Comment faire pour qu'il détecte automatiquement cette case en tant que nombre?
Dernier petit bug de mon outil, j'ai créé une macro qui copie la valeur d'une textbox dans une case excel mais le souci est qu'elle la prends en compte en tant que texte et non en tant que nombre. Du coup tous mes calculs sont faussés. Comment faire pour qu'il détecte automatiquement cette case en tant que nombre?
Polux31
Messages postés
6917
Date d'inscription
mardi 25 septembre 2007
Statut
Membre
Dernière intervention
1 novembre 2016
1 204
17 sept. 2009 à 14:07
17 sept. 2009 à 14:07
Bonjour,
Essaie en faisant :
Sheets(1).Range("A1").Value = CInt(TextBox1.Text)
Sinon, il faut changer le format de la cellule dans Excel:
Format -> Cellule -> onglet Nombre
;o)
Essaie en faisant :
Sheets(1).Range("A1").Value = CInt(TextBox1.Text)
Sinon, il faut changer le format de la cellule dans Excel:
Format -> Cellule -> onglet Nombre
;o)