[EXCEL2010] Pouvez vous verifier ce code svp
Résolu/Fermé
ced3c
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
-
6 nov. 2011 à 14:33
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 - 7 nov. 2011 à 13:22
ced3c Messages postés 237 Date d'inscription samedi 19 juillet 2008 Statut Membre Dernière intervention 28 mai 2016 - 7 nov. 2011 à 13:22
A voir également:
- [EXCEL2010] Pouvez vous verifier ce code svp
- Verifier un lien - Guide
- Code asci - Guide
- Code puk bloqué - Guide
- Code telephone oublié - Guide
- Code activation windows 10 - Guide
9 réponses
m@rina
Messages postés
21229
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
6 janvier 2025
11 375
6 nov. 2011 à 16:13
6 nov. 2011 à 16:13
Bonjour,
Si tu commences une condition par IF, elle doit obligatoirement se terminer par END IF...
Tu peux avoir des imbrications de IF :
Je regarde rapidement ton code, et je vois deux IF et un seul END IF
Si tu commences une condition par IF, elle doit obligatoirement se terminer par END IF...
Tu peux avoir des imbrications de IF :
IF .... IF .... END IF END IF
Je regarde rapidement ton code, et je vois deux IF et un seul END IF
ced3c
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
5
6 nov. 2011 à 16:28
6 nov. 2011 à 16:28
J'ai modifier le code mais la premiere etape ne marche pas (verifier si cellule est remplie)
Le reste marche
y a t il une erreur dans le code de la premiere partie ?
Le reste marche
y a t il une erreur dans le code de la premiere partie ?
Public Sub CommandButton2_Click() 'copie sauvegarde classeur If ("M17:P17,M23:P23") = "" Then MsgBox ("Vous devez renseigner un nom de client ainsi qu'un numéro de facture pour l'enregistrement") Exit Sub Else If ("M17:P17,M23:P23") <> "" Then Dim nom As String nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Range("M17") & "_" & Range("M23") & "_" & ActiveWorkbook.Name ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nom rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur") End If If MsgBox("Voulez vous effacer les données ?", _ vbYesNo, "Attention !") = vbYes Then Range("B3:B26,C3:C26,F3:F26,H3:H26,M17:P17,M19:P19,M21:P21,M23:P23,M25:P25,M27:P27,M29:P29,M30:P30,M31:P31,M32:P32,M33:P33").ClearContents End If End Sub
ced3c
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
5
Modifié par ced3c le 6/11/2011 à 16:57
Modifié par ced3c le 6/11/2011 à 16:57
ah ça s'améliore
mais le problème est que la vérification des cellules ne se fait que sur la première cellule (M17)
Comment dois je l'écrire pour que cela marche aussi sur M23 svp ?
mais le problème est que la vérification des cellules ne se fait que sur la première cellule (M17)
If IsEmpty(Range("M17,M23")) Then MsgBox ("Vous devez renseigner un nom de client ainsi qu'un numéro de facture pour l'enregistrement") Exit Sub
Comment dois je l'écrire pour que cela marche aussi sur M23 svp ?
m@rina
Messages postés
21229
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
6 janvier 2025
11 375
Modifié par m@rina le 6/11/2011 à 17:21
Modifié par m@rina le 6/11/2011 à 17:21
Il faut faire une boucle sur chaque cellule et vérifier si elle vide :
m@rina
For Each cellule In Range("M17:P17,M23:P23") If IsEmpty(cellule) Then MsgBox "Vous devez blablabla...!" Exit Sub End If next
m@rina
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ced3c
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
5
6 nov. 2011 à 17:37
6 nov. 2011 à 17:37
je suis vraiment désolé m@rina mais je fais encore des erreurs
le else pose problème mais si je l enlève, y a un autre problème .....
Je ne connais pas le vba et je ne sais pas du tout comment m en sortir la
Apparemment ce que tu m'as donner comme réponse conviendrais parfaitement mais je ne sais pas du tout l'exploiter.
Public Sub CommandButton2_Click() 'copie sauvegarde classeur For Each cellule In Range("M17:P17,M23:P23") If IsEmpty(cellule) Then MsgBox "Vous devez blablabla...!" Exit Sub End If Next Else If ("M17:P17,M23:P23") <> "" Then Dim nom As String nom = Day(Date) & "-" & Month(Date) & "-" & Year(Date) & "_" & Range("M17") & "_" & Range("M23") & "_" & ActiveWorkbook.Name ActiveWorkbook.SaveCopyAs ActiveWorkbook.Path & "\" & nom rep = MsgBox("Votre base de données est sauvegardée sous le nom : " & nom, vbYes + vbInformation, "Copie sauvegarde classeur") End If If MsgBox("Voulez vous effacer les données ?", _ vbYesNo, "Attention !") = vbYes Then Range("B3:B26,C3:C26,F3:F26,H3:H26,M17:P17,M19:P19,M21:P21,M23:P23,M25:P25,M27:P27,M29:P29,M30:P30,M31:P31,M32:P32,M33:P33").ClearContents End If End Sub
le else pose problème mais si je l enlève, y a un autre problème .....
Je ne connais pas le vba et je ne sais pas du tout comment m en sortir la
Apparemment ce que tu m'as donner comme réponse conviendrais parfaitement mais je ne sais pas du tout l'exploiter.
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 310
6 nov. 2011 à 18:46
6 nov. 2011 à 18:46
Bonjour à tous
petite maquette pour le principe
maintenant eb regardant ton code tu sembles n'avoir besoin que de M17 et M23,
donc si par ex M17 est vide mais N17= "azerty", problème...
Ps: ca va M@rina, bien longtemps que je ne t'avais croisé!
petite maquette pour le principe
Sub xxxx() Set Source = Union(Range("M17:P17"), Range("M23:P23")) If Application.CountA(Source) = 0 Then MsgBox "vide" Else MsgBox "au moins une valeur" End If
maintenant eb regardant ton code tu sembles n'avoir besoin que de M17 et M23,
donc si par ex M17 est vide mais N17= "azerty", problème...
Ps: ca va M@rina, bien longtemps que je ne t'avais croisé!
m@rina
Messages postés
21229
Date d'inscription
mardi 12 juin 2007
Statut
Contributeur
Dernière intervention
6 janvier 2025
11 375
6 nov. 2011 à 20:47
6 nov. 2011 à 20:47
Hello Michel !! ;))) Je te laisse prendre le relais !
Moi je vais me reposer ! :) A +
Moi je vais me reposer ! :) A +
ced3c
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
5
6 nov. 2011 à 19:54
6 nov. 2011 à 19:54
Merci de vos réponses
Je ne comprends pas
j'essai plusieurs choses mais rien à faire
Si vous acceptez encore de m'aider je vous joint le fichier excel
Le code est sur la feuille vente
http://www.cijoint.fr/cjlink.php?file=cj201111/cijgtvZG1R.xlsm
Peut être que ce sera plus facile comme cela
Je ne comprends pas
j'essai plusieurs choses mais rien à faire
Si vous acceptez encore de m'aider je vous joint le fichier excel
Le code est sur la feuille vente
http://www.cijoint.fr/cjlink.php?file=cj201111/cijgtvZG1R.xlsm
Peut être que ce sera plus facile comme cela
eriiic
Messages postés
24603
Date d'inscription
mardi 11 septembre 2007
Statut
Contributeur
Dernière intervention
15 décembre 2024
7 249
Modifié par eriiic le 7/11/2011 à 09:45
Modifié par eriiic le 7/11/2011 à 09:45
Bonjour,
Ton code :
Oublions l'erreur de saisie M23:P17...
Tes colonne M:P sont fusionnées, dans ce cas seule M est utilisée, inutile de spécifier les autres (elles seront toujours vides).
Il faut savoir que la fusion de colonne pose beaucoup de pb (ici ce n'est pas ce qui bloque mais il faut le savoir) et il faut l'éviter au maximum. Tu peux très bien t'en passer en élargissant M
Ton erreur :
Si j'ai bien compris tu veux que les 2 cellules soient remplies. Donc :
Teste et dis...
eric
Ton code :
Set Source = Union(Range("M17:P17"), Range("M23:P17")) If Application.CountA(Source) = 0 Then
Oublions l'erreur de saisie M23:P17...
Tes colonne M:P sont fusionnées, dans ce cas seule M est utilisée, inutile de spécifier les autres (elles seront toujours vides).
Il faut savoir que la fusion de colonne pose beaucoup de pb (ici ce n'est pas ce qui bloque mais il faut le savoir) et il faut l'éviter au maximum. Tu peux très bien t'en passer en élargissant M
Ton erreur :
Si j'ai bien compris tu veux que les 2 cellules soient remplies. Donc :
Set Source = Union(Range("M17"), Range("M23")) If Application.CountA(Source) < 2 Then
Teste et dis...
eric
ced3c
Messages postés
237
Date d'inscription
samedi 19 juillet 2008
Statut
Membre
Dernière intervention
28 mai 2016
5
7 nov. 2011 à 13:22
7 nov. 2011 à 13:22
Bonjour Eriiic
T'es un king cela marche niquel
C'est tout juste ce que je désirais
Je vais suivre ton conseil et éviter un maximum les fusions de cellules
Je vous remercie tous les trois de vos aides et conseils :)
et de votre patiente ^^
Merci et à très bientôt je pense
T'es un king cela marche niquel
C'est tout juste ce que je désirais
Je vais suivre ton conseil et éviter un maximum les fusions de cellules
Je vous remercie tous les trois de vos aides et conseils :)
et de votre patiente ^^
Merci et à très bientôt je pense