Simplifier un code

Résolu
toff63 Messages postés 8 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 octobre 2010 - 29 janv. 2008 à 23:21
toff63 Messages postés 8 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 octobre 2010 - 30 janv. 2008 à 22:22
Bonsoir,

Aprés beaucoup de travail personnel et de recherche sur le net, j'ai fait ce code :

Sub SupprimerArticles()

Dim A As String
A = ActiveSheet.ListBoxArticles.Value
If MsgBox("Confirmer la suppression", vbYesNo, "SUPPRESSION") = vbYes Then
    Sheets("Articles").Select
      Dim rcel As Range
      Range("A:A").Select
      For Each rcel In Selection
          If rcel.Value = A Then
             rcel.EntireRow.Delete Shift:=xlUp
           End If
      Next rcel
    Sheets("Saisies").Select
    Range("B5").Select
End If

End Sub

Je voudrai savoir s'il est possible de le simplifier et surtout sur la partie soulignée en gras.
Je m'explique :
Le bouton sur lequel je clique pour activer la macro est dans la page "Saisies".
Quand je clique dessus, La page "Articles" apparait un instant puis je reviens sur la page "Saisie".
Au vue du code, je comprend que c'est normal mais c'est pénible.
Je voudrait donc que la ligne contenant la variable A dans la feuille "Articles" soit supprimé sans que la page n'apparaisse.
Sans qu'elle soit "selectionner".
J'ai essayé avec with et End with mais ça ne marche pas. Je n'utilise peut etre pas la bonne syntaxe.

Pouvez vous m'aider ?

3 réponses

cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
30 janv. 2008 à 01:51
Tu peux soit utiliser ce que Jack voulait dire, je pense, ...
Application.ScreenUpdating = False
ce qui empêche de voir les changements de sélections ou pages, qui fige dans un certain sens l'écran...

Tu peux aussi spécifier le nom de la feuille dans laquelle tu veux modifier des choses
ex: Tu es dans Feuil1 et tu veux modifier quelque chose dans Feuil2 sans l'afficher.
Sheets("Feuil2").Range("A1") = "Allo"
    Msgbox Sheets("Feuil2").Range("A1")
Sheets("Feuil2").Range("A1") = "Modifié"

    Msgbox Sheets("Feuil2").Range("A1")

MPi²
Pour ceux qui programment sous Office, n'oubliez pas qu'il existe un forum dédié à ces applications VBA....... ICI
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
29 janv. 2008 à 23:43
Salut
Ok, je sais qu'il a une fonction qui permet de figer la visu puis de la libérer, mais je ne me rappelle plus laquelle.
Ca t'avance pas, mais essaye de chercher de l'aide sur le mot "figer"

Tu es sous Excel = VBA, pas .Net (catégorie modifiée)

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
toff63 Messages postés 8 Date d'inscription vendredi 18 mai 2007 Statut Membre Dernière intervention 30 octobre 2010
30 janv. 2008 à 22:22
Bon, j'ai choisi la méthode Application.ScreenUpdating = false

Merci pour votre aide.
0
Rejoignez-nous