Petit probleme pseudo formulaire et enregistrement macro

steph34

XLDnaute Junior
Bonjour le forum et...Bonne année (il est encore temps)

je voudrai alimenter une BD excel à l'aide d'un "pseudo" formulaire créer avec l'enregistrement d'une macro.

l'enregistrement fonctionne mais me fait "sauter la page" lorsque j'enregistre.
Et quand je veux masquer les deux ligne du haut de mon onglet "nouveau" cela me masque aussi les lignes de mon onglet "BD".
Comme je suis pas bon en VBA j'ai du mal à modifier la macro crée.

Je sens que je ne suis pas clair dans mes explications je vous joint donc le fichier.

Merci de votre aide et explications

Edit: fichier modifié
 

Pièces jointes

  • BD_essai.xls
    156 KB · Affichages: 52
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Petit probleme pseudo formulaire et enregistrement macro

Bonjour,

Pour éviter "la page qui saute" mettre en début de SUB l'instruction : Application.ScreenUpdating = False
et en fin de SUB l'instruction : Application.ScreenUpdating = True

Sub Enregistrer_Nouveau()
'
' Enregistrer_Nouveau Macro
'

Application.ScreenUpdating = False
Sheets("Base_CA").Select
Rows("2:2").Select
...
...
...
[Cell_locatiers] = "-"
[Cell_clients] = "-"
Application.ScreenUpdating = True
End Sub


Pour le masquage des lignes 1 et 2 de la feuille 'Nouveau', ça marche très bien chez moi.
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Petit probleme pseudo formulaire et enregistrement macro

(re) Bonsoir,

En général l'enregistreur de macro crée un code 'verbeux' qu'on peut simplifier par la suite pour le rendre plus lisible.

De plus l'enregistreur abuse des instruction select dont on peut la plupart du temps éviter l'emploi.

J'ai réécris rapidement votre code en le simplifiant un peu et en ôtant les select à priori inutiles. N'hésitez pas à demander des explications supplémentaires si besoin.

Code:
Sub Annuler()
    Range("C9:C12,C15:C16,C19:C20,C22:C24,C26:C28,F9:F12,F15:F16,F19:F20,F22").FormulaR1C1 = "-"
    Range("C10").ClearContents
    Range("C9").Select
End Sub

Sub Enregistrer_Nouveau()
    Application.ScreenUpdating = False
    Sheets("Base_CA").Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Sheets("Nouveau").Rows("2:2").Copy
    Sheets("Base_CA").Range("A2").PasteSpecial Paste:=xlPasteValues
    Sheets("Base_CA").Range("A2").PasteSpecial Paste:=xlPasteFormats
    Annuler
    Application.ScreenUpdating = True
End Sub
 
Dernière édition:

mapomme

XLDnaute Barbatruc
Supporter XLD
Re : Petit probleme pseudo formulaire et enregistrement macro

Bonsoir,

J'ai compris votre pb. de ligne cachée. Cela vient du fait que vous collez en ligne 2 de la Feuille 'Base CA' la ligne 2 de la feuille 'Nouveau' une fois en valeur puis une fois en format. Quand vous collez en format une ligne masquée, alors la ligne collée est aussi masquée. J'ai rajouté une instruction pour rendre la ligne collée visible.

Code:
Sub Annuler()
   Range("C9:C12,C15:C16,C19:C20,C22:C24,C26:C28,F9:F12,F15:F16,F19:F20,F22").FormulaR1C1 = "-"
   Range("C10").ClearContents
   Range("C9").Select
End Sub

Sub Enregistrer_Nouveau()
    Application.ScreenUpdating = False
    Sheets("Nouveau").Rows("2:2").Copy
With Sheets("Base_CA")
    .Rows("2:2").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    .Range("A2").PasteSpecial Paste:=xlPasteValues
    .Range("A2").PasteSpecial Paste:=xlPasteFormats
    .Rows(2).Hidden = False
End With
Annuler
Application.ScreenUpdating = True
End Sub
 
Dernière édition:

steph34

XLDnaute Junior
Re : Petit probleme pseudo formulaire et enregistrement macro

Bonsoir mapomme

merci de vos réponses.
je test tout cela de suite.

Pour sécuriser un peut ce formulaire genre on enregistre pas, si rien n'est rempli ou si par exemple
les champs "entreprise" "date" et moi ne sont pas remplis. Vous auriez une idée.

merci à vous
 

steph34

XLDnaute Junior
Re : Petit probleme pseudo formulaire et enregistrement macro

Re
Je viens de tester mais ça ne fonctionne pas.
Ca ne "saute plus" c'est déjà ça.
Par contre enregistrer marche une fois et me fait planter. débord erreur 9 (je crois) puis gel.
merci encore

EDIT: J'ai compris pour le masquage en fait je sélectionnais la ligne entière sur "nouveau" au lieu de ne selectionner que les cellules concernaient à savoir "A2:Y2"
 
Dernière édition:

steph34

XLDnaute Junior
Re : Petit probleme pseudo formulaire et enregistrement macro

Re
merci du fichier mais chez moi il plante
Erreur.PNG

Je sais pas si tu avais vu mon edit plus haut:
EDIT: J'ai compris pour le masquage en fait je sélectionnais la ligne entière sur "nouveau" au lieu de ne selectionner que les cellules à savoir "A2:Y2"

J'ai modifié ton code pour que le RAZ et l'annulation ne concerne pas les cellules C11 et C12.

merci de ton intérêt
 

Pièces jointes

  • Erreur.PNG
    Erreur.PNG
    23.5 KB · Affichages: 60
  • Erreur.PNG
    Erreur.PNG
    23.5 KB · Affichages: 63
  • BD_essai(2).xls
    142 KB · Affichages: 61
  • BD_essai(2).xls
    142 KB · Affichages: 70
  • BD_essai(2).xls
    142 KB · Affichages: 70

Discussions similaires

Réponses
34
Affichages
2 K

Statistiques des forums

Discussions
312 207
Messages
2 086 240
Membres
103 162
dernier inscrit
fcfg