Suppression en auto toutes les feuilles sauf Feuil1

undo

XLDnaute Junior
Boujour à tous,

Voilà mon pb:confused: j’ai une macro qui me créer un feuil1 avec des datas là tout va bien :) maintenant je relance la m^m macro est là le pb se pose:mad: il me remet les infos dans la feuil1 c'est normal mais il me créer une nouvelle feuil2 vide et si je relance Feuil 3 .....etc. .

Donc je cherche à rajouter dans la macro une info qui me supprimer automatiquement les FeuilsX sauf la feuil1 ou bien à chaque fois que je relance la macro il me créer toujours la feuil1 et de ne plus avoir l'incrémentation des autres feuilles.

Merci pour votre aide.;)
 

Spitnolan08

XLDnaute Barbatruc
Re : Suppression en auto toutes les feuilles sauf Feuil1

Bonjour Undo, MyDearFriend,

Pour ma part, je n'ai rien compris à ce que tu veux faire. Tel que présenté, ton code ajoute une feuille sans la renommer et sans conditions d'ajout : Comment savoir s'il faut créer une nouvelle feuille ou pas ? Par ailleurs, si tu n'as besoin d'en créer qu'une seule, pourquoi le faire par macro ? Tu rajoutes ta feuille et tu lances la macro pour le reste...

Cordialement
 

undo

XLDnaute Junior
Re : Suppression en auto toutes les feuilles sauf Feuil1

Bonjour Spitnolan08,

voila comment fonctionne la macro:

la macro me créer une feuille 'Feuil1' vas copier les infos de la colonne C d'une feuilles "EXPORTED DATA" et les colles dans la colonne A ensuite les infos sont recopier dans la colonne B en fessant du netoyage
voila un exemple du netoyage :
"ici des Espaces "CPC01701 - 551-Spare MCPA 45W 850 (MRD)
:cool: Resultat je recupère l'info en bleu CPC01701
puis le reste du code la pas de PB

donc ma question :

:mad: C'est quand je relance la m^m macro que le pb se pose il me remet les infos dans la feuil1 c'est normal mais il me créer une nouvelle feuil2 vide et si je relance Feuil 3 .....etc. .

:confused: Donc je cherche à rajouter dans la macro une info qui me supprimer automatiquement les FeuilsX sauf la feuil1 ou bien à chaque fois que je relance la macro il me créer toujours la feuil1 et de ne plus avoir l'incrémentation des autres feuilles.

merci pour ton support:cool:
 
Dernière édition:

myDearFriend!

XLDnaute Barbatruc
Re : Suppression en auto toutes les feuilles sauf Feuil1

Bonjour undo, Spitnolan08, le Forum,

Pffuuuuiouuuu, effectivement, Spitnolan08 a tout à fait raison, je n'ai pas tout compris non plus.
D'autant que sans exemple de données traitées, bonjour le boulot de reconstitution...

J'ai quand même tenté ci-dessous une façon de revoir ton code d'après ce que je crois avoir compris (je pense qu'il y a matière à faire mieux, mais comme je n'ai pas tout compris...)

Sauf erreur d'interprétation de ma part, cette procédure devrait te donner l'équivalent de ce que tu souhaites obtenir sans avoir à créer une nouvelle feuille et de façon un peu plus optimisée.

Code:
[SIZE=2][COLOR=GRAY][B][I]DANS UN MODULE DE CODE STANDARD[/I][/B][/COLOR]

[COLOR=NAVY]Option Explicit[/COLOR]

[COLOR=NAVY]Sub[/COLOR] miseenpage()
[COLOR=NAVY]Dim[/COLOR] TabTemp [COLOR=NAVY]As Variant
Dim[/COLOR] col [COLOR=NAVY]As String
Dim[/COLOR] L [COLOR=NAVY]As Long[/COLOR]
 
    [COLOR=NAVY]With[/COLOR] Sheets("EXPORTED DATA")
        .Activate
        [COLOR=GREEN]'En colonne A, insertion des valeurs de la colonne 3[/COLOR]
        .Columns(3).Copy
        .Columns(1).Insert Shift:=xlToRight
        
        [COLOR=GREEN]'Récupération des uniques valeurs souhaitées (partie précédant le "-", sans espace)[/COLOR]
        L = .Range("C65536").[COLOR=NAVY]End[/COLOR](xlUp).Row
        TabTemp = .Range(.Cells(2, 3), .Cells(L, 3)).Value
        [COLOR=NAVY]For[/COLOR] L = 1 [COLOR=NAVY]To UBound[/COLOR](TabTemp, 1)
            TabTemp(L, 1) = Replace((Split(TabTemp(L, 1), "-")(0)), " ", "")
        [COLOR=NAVY]Next[/COLOR] L
        .Range(.Cells(2, 1), .Cells([COLOR=NAVY]UBound[/COLOR](TabTemp, 1) + 1, 1)).Value = TabTemp
        
        [COLOR=GREEN]'Insertion en colonne B de la formule RECHERCHEV[/COLOR]
        .Columns(2).Insert Shift:=xlToRight
        .Range("B2").FormulaR1C1 = _
            "=VLOOKUP(RC[-1][-[Forecasts SFR UTRAN 2007 xls]1],'[Forecasts SFR UTRAN 2007.xls]FeuilcalGlobal'!C1:C2,2,FALSE)"
        .Range("B2").Aut[COLOR=NAVY]oFill [/COLOR]Destination:=Range("B2:B" & UBound(TabTemp, 1) + 1)
        
        [COLOR=GREEN]'/////////////////////////////////////////////////////////////////////////////////////////////////[/COLOR]
        [COLOR=GREEN]'A partir d'ici, j'ai laissé ton code quasiment tel quel...(non compris)[/COLOR]
        
        [COLOR=GREEN]'***********************transf des valeurs de la colonne B *******[/COLOR]
        col = InputBox("CHOISSISSEZ LE MOIS DU FORECASTS = LA LETTRE DE LA COLONN[COLOR=NAVY]E",[/COLOR] "choix[COLOR=NAVY] c[/COLOR]o[COLOR=NAVY]lonne"[/COLOR], "K")
        For L = 2 To U[COLOR=NAVY]Bo[/COLOR]und(TabTemp, 1) + 1
            I[COLOR=NAVY]f Is[/COLOR]Numeric(Range("b"[COLOR=NAVY] &[/COLOR] L).Value) Then
                If .Range("b" & L).Value > 0 And .Range("f" [COLOR=NAVY]& L)[/COLOR].Value = "Local Demand Entry" Then
                    .Range(col & L).Value = .Ran[COLOR=NAVY]ge([/COLOR]"[COLOR=NAVY]b"[/COLOR] & L).Value
 [COLOR=NAVY]               End [/COLOR]If
            End If
        Next L
        [COLOR=GREEN]'*************************Suppression des colonnes A et B**********************[/COLOR]
 [COLOR=NAVY]       .[/COLOR]Columns("A:B").Delete
    End With
    [COLOR=GREEN]'****************Sauvegarde du fichier DM**********************[/COLOR]
    Applica[COLOR=NAVY]tio[/COLOR]n[COLOR=NAVY].Di[/COLOR][/SIZE]
2 remarques :
  1. En VBA, il te faut éviter au maximum tout Select de cellule. C'est le plus souvent inutile, ralenti le traitement et très souvent source de plantage (notamment si tu ne te trouves pas sur la bonne feuille activée).
  2. Toutes les variables doivent être déclarées (ta variable derligne ne l'était pas par exemple). L'utilisation de Option Explicit en tête de module, te permet de détecter tout problème de ce genre.
    Par ailleurs, ces déclarations doivent se faire en tête de procédure, jamais en plein milieu.
Si tu as besoin d'explications complémentaires, n'hésite pas.

Cordialement,
 

Spitnolan08

XLDnaute Barbatruc
Re : Suppression en auto toutes les feuilles sauf Feuil1

Re,

Effectivement, MyDearFriend, à partir de l'explication d'undo, ta proposition devrait convenir. Et je n'aurais pas proposé une telle amélioration...

Cependant, et comme tu connais mon appréciation de tes codes, cela me semble un poil trop technique pour notre ami, même avec tes commentaires ; si toutefois on peut juger de son niveau avec le code qu'il nous a transmis.

Au plaisir de te croiser,
Cordialement
 

myDearFriend!

XLDnaute Barbatruc
Re : Suppression en auto toutes les feuilles sauf Feuil1

Re,

100% de ton avis pour la procédure que j'ai postée et que j'ai finalement postée à regret. J'avais commencé à faire plus "soft", mais compte tenu du manque d'info, et pour ne pas finir par re-faire une usine sans même savoir le pourquoi, j'ai fini par faire un RAZ de l'ensemble.
Mais globalement tu as raison, c'est une erreur de ma part.

Cela dit, comme je reste sur l'impression que la Feuil1 créée est temporaire, si undo le souhaite vraiment, sa procédure d'origine devrait tourner s'il modifie simplement son code comme ça :
  • En début de procédure :
    Code:
    [SIZE=2][COLOR=GRAY][B][I]MODIFIER LE DÉBUT DE LA PROCÉDURE D'[U]ORIGINE[/U] COMME SUIT :[/I][/B][/COLOR]
    
    [COLOR=NAVY]Sub[/COLOR] miseenpage()
    [COLOR=NAVY]Dim[/COLOR] FeuilTempo [COLOR=NAVY]As[/COLOR] Worksheet
     
        [COLOR=GREEN]'Sheets("EXPORT INFO").Activate[/COLOR]
        [COLOR=NAVY]Set[/COLOR] FeuilTempo = Sheets.Add
        Sheets("EXPORTED DATA").Columns("C:C").Copy FeuilTempo.Range("A1")
        ...
        ...
    [/SIZE]
  • En fin de procédure :
    Code:
    [SIZE=2][COLOR=GRAY][B][I]MODIFIER LA FIN DE LA PROCEDURE COMME SUIT :[/I][/B][/COLOR]
    
            Application.DisplayAlerts = [COLOR=NAVY]False[/COLOR]
            FeuilTempo.Delete
            Application.DisplayAlerts = [COLOR=NAVY]True
        End Sub[/COLOR]
    [/SIZE]
Cordialement,
 

Spitnolan08

XLDnaute Barbatruc
Re : Suppression en auto toutes les feuilles sauf Feuil1

Re,

C'est "quasi exactement" ;) les modifications que j'avais apporté au code avant mon 1er post...avec en prime, quand même, la suppression de toutes les lignes inutiles dues à l'enregistreur de macro comme les ScrollDown...

Et avec ça, undo devrait se débrouiller s'il a besoin d'adapter.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 209
Messages
2 086 263
Membres
103 167
dernier inscrit
miriame