Suppression de ligne d'un onglet en fonction de valeur contenue dans un onglet de référence

  • Initiateur de la discussion Initiateur de la discussion Juldax
  • 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 !

Juldax

XLDnaute Nouveau
Bonjour à tous,
Je reviens vers vous avec une nouvelle colle :
j'ai un fichier excel possédant N onglet, j'ai 1 onglet représentant une base de donnée à jour selon différent critéres(N-1), et N-1 onglets représentant des segments de cet base et qui eux ne sont pas forcément à jour.
ceux que je souhaiterais c'est : Si une information n'est pas contenue dans l'onglet à jour mais l'est dans un des autres onglets, cet ligne soit supprimés.
Je vous joins un fichier Excel représentant cet demande ainsi qu'une macro de mauvaise qualité qui ne semble pas fonctionné ... (je début seulement VBA donc soyez indulgent 😀)
Donc dans l'onglet total, les seuls lignes à jours son tles lignes contenant les "Id" : 1,2 et 3. Il ne faudrait donc retrouver que les lignes dont les "Id" sont : 1,2 et 3 dans les autres onglets et supprimer les autres.

Voila sur quel base je suis partis avec mes toutes nouvelles compétences en programmation VBA :
upload_2017-6-21_12-2-12.png

Si vous y voyez des abérations, je vous seraient infiniment reconnaissant de me transmettre un petit peu de votre savoir 😳

Merci d'avance
 

Pièces jointes

Hello

Essaie avec juste ce code
VB:
Sub proc()
Dim onglet As Worksheet, compteur As Integer, plageRef, PlageToUpdate As Range
Set plageRef = Sheets("Total").UsedRange
'plageRef.Select
For Each onglet In Sheets
    If onglet.Name <> "Total" Then
        Set PlageToUpdate = onglet.UsedRange
        'PlageToUpdate.Select
        For compteur = PlageToUpdate.Rows.Count To 2 Step -1
            Set c = plageRef.Find(PlageToUpdate(compteur, 1))
            If c Is Nothing Then
                PlageToUpdate(compteur, 1) = ""
                PlageToUpdate(compteur, 2) = ""
            End If
            Next compteur
    End If
Next onglet
End Sub
 
Hello

on à pas besoin de séléctionné la plage d'abord ?

non, il faut juste s'assurer qu'elle soit bien définie au préalable.. avec le set..
en fait. VBA n'a normalement quasiment JAMAIS besoin qu'on sélectionne une range, ou data pour travailler dessus. pour peu qu'elle soit correctement définie.. Quasiment parce qu' honnetement.. j'avoue ne pas toujours maitriser la chose.. 🙂
c'est d'ailleurs pour ca que bien souvent, j'ai des .select qui trainent dans mon code et qui parfoient finissent en commentaires 🙂
 
- 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
1
Affichages
132
Réponses
13
Affichages
491
Retour