Empêcher une macro de s'effectuer si valeurs ''vide''

  • Initiateur de la discussion Initiateur de la discussion MCVampire
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

MCVampire

XLDnaute Nouveau
Bonjours à tous,

Rapidement... je suis nouveau sur ce forum et j'avoue qu'au niveau VBA je suis on ne peut plus amateur. 🙄 Disons que mes forces se situent plus au design web. Peut importe, je viens quérir votre aide aujourd'hui pour quelques petit détail où je bloque. Voici le premier;

J'ai trouvé une macro sur un tutoriel qui me permet d'enregistrer de nouvelles données dans une base. Cependant la valeur "vide" vient me pourrir la vie. 🙁

J'aimerais que si tout les champs requis ne sont pas remplit, la macro ne s'effectue pas. Simple peut-être ... mais pas pour moi. 😛 Voici mon code:

Code:
Sub Nouveau()
'
' Nouveau Macro
'

'
    Sheets("datas1").Select
    Rows("2:2").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("INDEX").Select
    Range("B3:F3").Select
    Selection.Copy
    Sheets("datas1").Select
    Range("A2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
        SkipBlanks:=False, Transpose:=False
    Sheets("INDEX").Select
    Range("C8:D11").Select
    Application.CutCopyMode = False
    Selection.ClearContents
    Range("C8:D8").Select
End Sub

Les champs obligatoire se situe dans Range("B3:F3")

Merci d'avance et bonne fin de journée

Jief
 
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

Bonjour


Juste pour te souhaiter la bienvenue et te féliciter d'employer d'office la balise BB code dés ton premier message.


Puisses-tu servir d'exemple aux nouveaux membres.
 
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

Bonjour


Juste pour te souhaiter la bienvenue et te féliciter d'employer d'office la balise BB code dés ton premier message.


Puisses-tu servir d'exemple aux nouveaux membres.


Merci vbacrumble 🙂

Pour le peu de temps que je vais rester, si je peux donner l'exemple j'en serais ravis. Je suis un habitué des forums (et ancien webmaster) donc j'ai de bonnes bases ... J'ai même faillis me présenter dans la section prévu a cet effet mais bon, dès ce petit logiciel terminé (et p-e un autre sous VB.Net plus tard) je vais retourner a mon bon vieux Dreamweaver ... Je ne me suis donc pas présenté en tant que membre, pour ne pas trop m'attacher (je hais les adieux 😀 )

Je continue d'effectuer mes recherches sur le forum voir si je ne trouve pas solution a mes autres problèmes. D'ici a ce qu'on se recroise quelque part ici, je te souhaite une bonne fin de journée et merci encore pour l'accueil.

Salutations

Jief
 
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

Re


Voici un moyen de parvenir à tes fins

(je te laisse adapter le nom des feuilles
(j'ai commenté les 3 premières lignes car je suis sous Excel 2000)
Code:
Sub Nouveau()
Dim plg As Range, c&
    'Sheets("datas1").Select
    'Rows("2:2").Select
    'Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Set plg = Sheets(2).Range("B3:F3")
    c = Application.WorksheetFunction.CountBlank(plg)
    If c = 0 Then
    plg.Copy
    Sheets(1).Range("A2").PasteSpecial xlPasteValues
    Sheets(1).Range("A2").PasteSpecial xlPasteFormats
    Sheets(2).Range("C8:D11").ClearContents
   End If
End Sub
 
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

Resalut,

Merci d'avoir répond si vite 😀

J'ai malheureusement un soucis avec ce nouveau code ...

Si je laisse commenté les 3 premières lignes, la macro ne fait rien si elle est vide, par contre si des données y sont inscrite mon ''auto increment'' (les 3 premières lignes) n'est pas pris en compte et les données se chevauche.

Si je décommente les 3 premières lignes, j'ai une ligne ''vide'' qui s'ajoute en haut de ma feuilles ''datas1''. La macro semble copier une valeur vide tout de même.

J'ai essayé If c = '''' Then que je vois souvent en PHP mais j'ai une erreur d'incompatibilité.

D'autres solutions svp ?
 
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

Re


'On définit la plage de cellules B3:F3
Set plg = Sheets(2).Range("B3:F3")
'ici on compte les cellules vides
c = Application.WorksheetFunction.CountBlank(plg)

Donc si aucunes cellules vides , alors c =0
et il ne se passe rien.

Et la il se passe quoi ?
Code:
Sub Nouveau()
Dim plg As Range, c&
    Sheets(2).Rows("2:2").Insert Shift:=xlDown
    Set plg = Sheets(2).Range("B3:F3")
    c = Application.WorksheetFunction.CountBlank(plg)
    If c = 0 Then
    plg.Copy
    Sheets(1).Range("A2").PasteSpecial xlPasteValues
    Sheets(1).Range("A2").PasteSpecial xlPasteFormats
    Sheets(2).Range("C8:D11").ClearContents
   End If
End Sub
 
Dernière édition:
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

Resalut,

Merci de cette réponse si rapide! 😀

Malheureusement j'ai une soucis avec ce dernier code...

Si je laisse commenté les 3 premières lignes, la macro ne s'effectue pas comme demandé avec une valeur vide, cependant si la valeur n'est pas vide les données se chevauchent puisque mon autoincrement (3 premières ligne) n'est pas pris en compte.

Si je décommente les 3 premières ligne, la macro s'effectue même avec des champs vide et ajoute une ligne vide dans mon datas1.

D'autres solutions svp ?
 
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

Re salut,

Merci pour cette réponse si rapide! 😀

Malheureusement j'ai un soucis avec ce dernier code...

Si je laisse commenté les 3 premières lignes, la macro ne s'effectue pas si la valeur est vide comme demandé, par contre si elle n'est pas vide, les données se chevauchent sur mon datas1. (3 premières lignes)

Donc si je décommente mes 3 premières lignes, l'ajout de données va bien mais si j'ai une valeur vide ... la macro me copie une ligne blanche dans mon datas1.

D'autre solutions svp ? 😕
 
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

re vbacrumble

Lorsque je remplis C8:C11, il s'ajoute automatiquement à la ligne 3, le bouton [Ajouter le Jeu] copie la valeur vers datas1 avec la macro oui.

Merci 😀


Dsl jeanpierre, je suis nouveau et est donné autant d'info qu'il m'étais possible durant les derniers posts sachant que je ne connais rien sous excel ... normalement je l'aurais fais en PHP, mais trop lourd pour le portable.
Bonne nuit et merci tout de même.
 
Re : Empêcher une macro de s'effectuer si valeurs ''vide''

Re


Avec ces modifs , ca devrait le faire

Code:
Sub Nouveau()
Dim plg As Range, c&
    Set plg = Sheets("INDEX").Range("B3:F3")
    c = Application.WorksheetFunction.CountBlank(plg)
    If c = 0 Then
    plg.Copy
    Sheets("datas1").Range("A65536").End(xlUp).Offset(1).PasteSpecial xlPasteValues
    Sheets("INDEX").Range("C8:D11").ClearContents
   End If
End Sub


Jeanpierre: on saisit le nouveau jeu en C8:C11
ces données se répercutent par formule en ligne 3
et en appuyant sur le bouton [Ajouter le jeu]
les données sont recopiées sur la feuille data1
(dans le première ligne vide)

Voila ce que j'ai compris.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
10
Affichages
554
Réponses
18
Affichages
325
Réponses
2
Affichages
287
Réponses
17
Affichages
1 K
Retour