IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Macros et VBA Excel Discussion :

Supprimer des données sans effacer les formules sur plusieurs feuilles [XL-2003]


Sujet :

Macros et VBA Excel

  1. #1
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut Supprimer des données sans effacer les formules sur plusieurs feuilles
    Bonjour,

    Je dispose d'un classeur composé de plusieurs onglets.
    L'onglet principal nommé "Feuil1" est une base de données.
    Ensuite j'ai un onglet intitulé "Stages", un autre intitulé "Entretiens", etc....

    La colonne A de la feuil1 est nommée : NOMS et contient tous les noms des employés et les autres colonnes des renseignements concernant ces employés (bref : une base de données dont seuls 4 personnes ont accès par mot de passe [confidentialité personnel => CNIL].

    La cellule Formation a accès à la feuille "Stages" et lorsqu'elle sélectionne un nom (fonction Validation => liste = NOMS) en colonne A, un certain nombre de renseignements viennent s'inscrire grace à la fonction (RechercheV) puis l'opérateur saisi un type de stage ainsi que les dates et le lieux.

    Idem pour la feuille "Entretien", le service Management tout comme le service Formation sélectionne un Nom, puis saisi des renseignements et certaines données viennent compléter la ligne concernée par rapport au nom sélectionné.

    Ma question est la suivante :

    Lorsqu'une personne quitte définitivement la société, une des 4 personnes qui gérent la base de données sélectionne grace a une listbox, le nom de la personne qui part et une macro supprime dans la feuil1 toutes les données sauf les formules sur la ligne concernant ce nom.

    Comment faire pour que celà aille également supprimer toutes les infos dans les autres feuilles concernant ce nom sans effacer les formules ?

    Actuellement lorsque je supprime un nom dans feuil1, le nom concerné ne se supprime pas dans les autres feuilles et comme j'utilise la fonction RechercheV sur les noms, tout se décalle dans les autres feuilles.

    Cordialement,
    _____ Graphikris

  2. #2
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    Bonsoir,

    tu as une possibilité d'effacer les constantes de la propriété SpecialCells de l'objet range. Tu peux boucler les feuilles avec Find

    exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Range(Coordonnées).Rows(ligne).SpecialCells(xlCellTypeConstants).ClearContents
    Si tu n'as pas idée du code à manipuler, fais un signe.
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

  3. #3
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Bonjour,

    Le souci est que je ne connais pas les n° de lignes et colonnes à supprimer.
    La feuille Stages ou Entretiens contient trop de noms.

    Cordialement

  4. #4
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonjour,
    Je suppose que ce que tu souhaites faire c'est de visualiser les absences par mois lorsque tu sélectionnes le mois dans une liste.
    Si c'est le cas, ton classeur n'est pas vraiment organisé pour le faire simplement. Tu as organisé ta feuille de données comme une tableau à consulter.
    L'idéal et il me semble t'avoir écrit cela il y a un certain temps parce-que les codes que tu utilises des codes que j'ai déjà vu, est d'avoir une feuille reprenant les uns derrières les autres le nom et prénom des personnes le code d'absence et les jours concernés.
    Et de là on peut organiser la feuille de consultation par semaine, mois, trimestre etc...
    Tirer une synthèse avec le tableau croisé dynamique ou avec SOMMEPROD etc ...
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  5. #5
    Membre confirmé Avatar de graphikris
    Homme Profil pro
    Pas tres doué
    Inscrit en
    Décembre 2012
    Messages
    1 214
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Pas tres doué
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 214
    Points : 522
    Points
    522
    Par défaut
    Bonjour,

    Non çà n'a aucun rapport, je suis entrain de modifier des données dans mon tableau et dès que j'ai terminé, je joins le fichier.

    MErci

    Supposons que le "NOMS 1" quitte notre société, grace a une macro, les renseignements figurant sur la Feuil1 concernant cette personne seront supprimés sans pour autant supprimer les formules de la ligne 1 puisque cette personne est sur la ligne 1.
    Mais je cherche comment faire pour également supprimer cette personne sur les autres feuilles (nom mis en fond rouge), sans pour autant supprimer egalement les formules des lignes concernnées sur chaque feuille.

    A l'issue, une macro retriera les feuilles afin de remettre les lignes supprimer à la fin.

    La macro que je dispose actuellement est dans un formulaire avec une listbox afin de selectionner la personne a supprimer. la commande se trouve en A1 :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    Private Sub CommandButton1_Click()
     
     
     
    Dim MyRange As Range
    Dim L As Long
    Dim C As Long
    Set MyRange = ActiveWorkbook.Worksheets("Feuil1").Range("A:A")
    L = MyRange.Find(Me.ListBox1_Noms).Row
    Set MyRange = ActiveWorkbook.Worksheets("Feuil1").Range("A" & L & ":IV" & L)
    For C = 1 To MyRange.Count
        If Left(MyRange(C).FormulaR1C1 & " ", 1) <> "=" Then MyRange(C) = ""
    Next
    End
     
    End Sub
    Cordialement

  6. #6
    Rédacteur
    Avatar de Philippe Tulliez
    Homme Profil pro
    Formateur, développeur et consultant Excel, Access, Word et VBA
    Inscrit en
    Janvier 2010
    Messages
    12 773
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Formateur, développeur et consultant Excel, Access, Word et VBA

    Informations forums :
    Inscription : Janvier 2010
    Messages : 12 773
    Points : 28 637
    Points
    28 637
    Billets dans le blog
    53
    Par défaut
    Bonsoir,
    Citation Envoyé par graphikris Voir le message
    Bonjour,
    Non çà n'a aucun rapport, je suis entrain de modifier des données dans mon tableau et dès que j'ai terminé, je joins le fichier.
    MErci
    Oui, désolé, je crois que j'ai mélangé deux discussions.
    Philippe Tulliez
    Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément. (Nicolas Boileau)
    Lorsque vous avez la réponse à votre question, n'oubliez pas de cliquer sur et si celle-ci est pertinente pensez à voter
    Mes tutoriels : Utilisation de l'assistant « Insertion de fonction », Les filtres avancés ou élaborés dans Excel
    Mon dernier billet : Utilisation de la fonction Dir en VBA pour vérifier l'existence d'un fichier

  7. #7
    Membre chevronné
    Avatar de NVCfrm
    Homme Profil pro
    Administrateur Système/Réseaux - Developpeur - Consultant
    Inscrit en
    Décembre 2012
    Messages
    1 036
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Administrateur Système/Réseaux - Developpeur - Consultant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Décembre 2012
    Messages : 1 036
    Points : 1 917
    Points
    1 917
    Billets dans le blog
    5
    Par défaut
    salut,

    ...Mais je cherche comment faire pour également supprimer cette personne sur les autres feuilles (nom mis en fond rouge), sans pour autant supprimer egalement les formules des lignes concernnées sur chaque feuille.
    pour te guider encore dans ce sens, tu peux déclarer un tableau de 2 éléments.
    l''élément 1 contient les noms des feuilles à contrôler, l'élément 2 l'indices de colonnes de la feuille

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    ReDim Param (1 to 2)
    Param(1) = Array("Feuil1", "Feuil3", "Feuil4")
    Param(2) = Array(1, 2, 5)
    Tu peux ainsi boucler ce tableau pour parcourir les feuilles et capturer la colonne.
    Attention quand même à la manipulation de Find sans définir explicitement tous les arguments. Dans ton cas le minmum serait de mettre MatchCase:=True. Find peut te prendre par exemple Paul dans Pauline.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    For n = 1 to ubound(Param)
         With Worksheets(param(1)(n)).Columns(Param(2)(n)
                Set MyRange = .Find(Me.ListBox1_Noms, MatchCase:=True)
               If Not MyRange Is Nothing Then
                       MyRange.SpecialCells(xlCellTypeConstants).ClearContents
               End If
               Set MyRange = Nothing
         End With
     
    Next
    Bonjour,

    une rectification sur la ligne de code n° 5 à faire pour que toute la ligne soit traitée.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyRange.SpecialCells(xlCellTypeConstants).EntireRow.ClearContents
    Ousmane


    Quand on tombe dans l'eau, la pluie ne fait plus peur.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Déplacer des cellules sans modifier les formules
    Par maroonx dans le forum Excel
    Réponses: 2
    Dernier message: 29/03/2015, 15h52
  2. Réponses: 0
    Dernier message: 11/06/2014, 22h37
  3. Réponses: 4
    Dernier message: 09/05/2013, 00h14
  4. Calculs : correction mais sans effacer les formules
    Par francescu dans le forum Excel
    Réponses: 14
    Dernier message: 23/04/2013, 13h48
  5. supprimer une ligne sans influencer les formules
    Par macpascal dans le forum Excel
    Réponses: 1
    Dernier message: 11/06/2009, 23h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo