Deux petits soucis (macro + une formule)

lord_2009

XLDnaute Nouveau
edit
Bonsoir a tous je suis nouveau ^^,

Je viens demander votre aide sur deux petits soucis sur mon fichier excel.

Voilà mon premier soucis concerne une macro.

j'ai creer une macro qui recherche toute les lignes ou il y a marqué "terminé" les copie dans un dossier archive et supprime la ligne et creer une nouvelle ligne de tableau en dessous. Tout fonctionne parfaitement SAUF que je n'arrive pas a étendre la macro a toute les feuilles et non juste a la feuille en cours.

je m'explique plus clairement, je dispose d'environ 15 feuilles et d'une feuille "archives" et une autre nommé "données".
je souhaite que ma macro fonctionne a la chaine sur toute les feuilles.
J'avais pensé a une chaine par alphabet (commencant par finissant par) en y insérant une exception pour archive (qui ferait tout planté) et données. (edit + j'aimerais que cette macro crée de nouvelle ligne de tableau suivant le nombre de ligne qu'elle supprime en y mettant les formules des autres lignes)

voilà si on peut me conseiller, j'ai pas un exemple de ma macro sous la main mais si besoin je tacherais d'en fournir une.

Problème résolu

Enfin mon deuxieme problème qui concerne une formule.
voilà j'ai creer des formule index sur la feuille donnée qui permet de faire des recherches rapide dans les tableaux pour trouver des truc rapidement
cependant la recherche s'effectue par exemple sur la ligne B4 à B24, mais lorsque la macro s'active et supprime une ligne, la ligne devient B4 à B23 et ainsi de suite.
comment faire pour obliger ma formule a garder la plage donnée.
j'ai tenté le indirecte "", ceci fonctionne la plage ne bouge plus du tout mais la recherche ne fonctionne plus et n'affiche plus rien.

De même je tacherais de fournir la formule si besoin

je remercie d'avance tout ceux qui essayeront de m'aider, même ceux qui me liront juste ;).

bonne soirée à tous.

ouais j'en rajoute mdr^^

voilà j'aurais aimé faire un tableau dynamique de toute mes feuilles formés exactement de la même facon.

le problème c'est que j'ai tenté le tableau dynamique avec étiquette (seul possibilité a ma connaissance pour combiner plusieurs base de donnée) et malheureusement je dispose uniquement de DEUX paramètre : LIGNE COLONNE
et biensur à l'interieur de ligne il y a rien car j'ai pas de ligne
et à l'interieur de colonne ya tout ce que je veux avoir sans possibilité de le séparer comme dans TCD avec une seul BDD.
je me demandais si il y aurait moyen de justement séparé les étiquettes de l'étiquette colonne

je suppose que non car j'ai a peu presque tout tenté je crois^^

si non y a t il d'autres solutions

excepté celle de faire qu'une seul BDD car je préféré avoir plusieurs feuilles qu'une seul et unique BDD.

voilà si jamais il y a un sauveur

ps mes demandes précédente restent d'actualité biensur

je remercie d'avance tout le monde
 

Pièces jointes

  • fichier d'exemple excel.xlsm
    17.5 KB · Affichages: 44
  • fichier d'exemple excel.xlsm
    17.5 KB · Affichages: 41
  • fichier d'exemple excel.xlsm
    17.5 KB · Affichages: 40
Dernière édition:

Robert

XLDnaute Barbatruc
Repose en paix
Re : Deux petits soucis (macro + une formule)

Bonsoir Lord et bienvenu, bonsoir le forum,

Comme tu es nouveau parmi nous je te recommande de lire la Lien supprimé du forum qui donne tous les bons plans pour obtenir de l'aide rapidement. Tu comprendras mieux qu'avec un fichier exemple les réponses sont plus nombreuses et plus rapides.

Pour ton premier problème, essaie comme ça :
Code:
Sub Macro1()
Dim o As Object 'déclare la variable o (Onglet)

For Each o In Sheets 'boucle sur tous les onglets du classeur
    If Not o.Name = "Archives" Then 'condition : si le nom de l'onglet n'est pas "Archives"
        'le code de ta macro
    End If 'fin de la condition
Next o 'prochain onglet de la boucle
End Sub

Trop nul en formules pour pouvoir t'aider dans ton second problème...
 

JBARBE

XLDnaute Barbatruc
Re : Deux petits soucis (macro + une formule)

Bonsoir à tous,

Pour :

cependant la recherche s'effectue par exemple sur la ligne B4 à B24, mais lorsque la macro s'active et supprime une ligne, la ligne devient B4 à B23 et ainsi de suite.
comment faire pour obliger ma formule a garder la plage donnée.

Le plus simple est de remplacer votre formule par une macro qui, lorsqu'elle sera placée après la suppression d'une ligne dans la macro, pourra garder les lignes concernées sans décalage !

Mais bon, sans la présence d'un fichier comme il est dit précédemment par ROBERT, il est guère possible d'intervenir !

Bonne nuit
 
Dernière édition:

lord_2009

XLDnaute Nouveau
Re : Deux petits soucis (macro + une formule)

Bonjour,

Je te remercie JBARBE et robert pour votre aide.

J'ai bien essayé ton idée pour ma macro mais j'ai échoué malheureusement

pour la formule je vois pas trop comment faire.

j'ai un fichier d'exemple que je n'arrive pas à inserer. Pourtant j'ai un fichier de 18 ko sous excel mais impossible de l'envoyer

je vous remercie d'avance :)
 
Dernière édition:

lord_2009

XLDnaute Nouveau
Re : Deux petits soucis (macro + une formule)

ah ben c'est bon voici le fichier :)
 

Pièces jointes

  • fichier d'exemple excel.xlsm
    17.1 KB · Affichages: 76
  • fichier d'exemple excel.xlsm
    17.1 KB · Affichages: 106
  • fichier d'exemple excel.xlsm
    17.1 KB · Affichages: 97

Staple1600

XLDnaute Barbatruc
Re : Deux petits soucis (macro + une formule)

Bonsoir à tous

Essaies avec ces modifs
Code:
Sub testII()
Dim ws As Worksheet, dlg&, lg&, i%
For Each ws In Worksheets
    If Not ws.Name Like "Archive" Then
        If Not ws.Name Like "Données" Then
            With ws
                dlg = .Range("A" & .Rows.Count).End(xlUp).Row
                For i = dlg To 2 Step -1
                    If UCase(.Range("I" & i)) = "FINI" Then
                    lg = Sheets("ARCHIVE").Cells(Rows.Count, 1).End(xlUp).Row + 1
                    Sheets("Archive").Cells(lg, 1).Resize(, 9).Value = _
                    .Cells(i, 1).Resize(, 9).Value
                    .Cells(i, 1).Resize(, 9).ClearContents
                    End If
                Next
            End With
        End If
    End If
Next ws
End Sub
 
Dernière édition:

lord_2009

XLDnaute Nouveau
Re : Deux petits soucis (macro + une formule)

merci à toi pour cette macro qui fonctionne.

Cependant en modifiant la macro tu as modifiés un tout petit peu ce que je voulais :)
ta macro copie nikel en cherchant dans toute les feuilles autre que données et archives, ce que je veux sauf qu'elle ne supprime pas la ligne en faisant remonter l'autre, elle supprime juste les éléments du tableau laissant des cases vides au milieux du tableau.

Voilà si tu as une solution je suis preneur ^^

Mais merci quand meme car c'est presque ce que je veux.

Et pour la formule j'ai fais une pseudo solution, j'ai enregistrer une macro qui recopie les formules a chaque déclenchement de la macro évitant ainsi d'avoir ma plage de cellule réduite lorsque je supprime des lignes.
Cependant je me retrouve avec un code a rallonge un peu embetant même si la macro est pas trop lente pour s'effectuer.

si j'avais il y a un moyen de bloquer des plages de cellule autrement que par macro je suis aussi preneur .

merci d'avance a tous
 

Staple1600

XLDnaute Barbatruc
Re : Deux petits soucis (macro + une formule)

Bonjour à tous

lord_2009
Il suffisait de remettre la ligne de ta précédente macro, non ...:rolleyes:
Code:
Sub testIII()
Dim ws As Worksheet, dlg&, lg&, i%
For Each ws In Worksheets
    If Not ws.Name Like "Archive" Then
        If Not ws.Name Like "Données" Then
            With ws
                dlg = .Range("A" & .Rows.Count).End(xlUp).Row
                For i = dlg To 2 Step -1
                    If UCase(.Range("I" & i)) = "FINI" Then
                    lg = Sheets("ARCHIVE").Cells(Rows.Count, 1).End(xlUp).Row + 1
                    Sheets("Archive").Cells(lg, 1).Resize(, 9).Value = _
                    .Cells(i, 1).Resize(, 9).Value
                    '.Cells(i, 1).Resize(, 9).ClearContents
                    .Rows(i).Delete shift:=xlUp
                    End If
                Next
            End With
        End If
    End If
Next ws
End Sub
 
Dernière édition:

lord_2009

XLDnaute Nouveau
Re : Deux petits soucis (macro + une formule)

Merci bien, la macro fonctionne.
Cependant j'aurais voulu te demander une derniere chose si possible^^

J'aurais souhaité que ma macro puisse recreer des lignes de tableau afin d'éviter que celui ci se retrouve sans ligne de calcul.

que lorsque il supprime deux lignes, ben qu'il en copie deux vierge en bas de tableau par exemple
J'avais fais une macro enregistrer qui copié collé une ligne vierge en bas du tableau mais bon j'aimerais mieux que ca et qui biensur fonctionne dans chaque feuille

voici le code

Range("A20:I21").Select
Selection.AutoFill Destination:=Range("A20:I22"), Type:=xlFillDefault
Range("A20:I22").Select

je vous remercie d'avance :)
 

Staple1600

XLDnaute Barbatruc
Re : Deux petits soucis (macro + une formule)

Bonsoir à tous


Pas sur d'avoir tout compris
Code:
Sub testV()
Dim ws As Worksheet, dlg&, lg&, i%
Application.ScreenUpdating = False
For Each ws In Worksheets
    If Not ws.Name Like "Archive" Then
        If Not ws.Name Like "Données" Then
            With ws
                dlg = .Range("A" & .Rows.Count).End(xlUp).Row
                For i = dlg To 2 Step -1
                    If UCase(.Range("I" & i)) = "FINI" Then
                    lg = Sheets("ARCHIVE").Cells(Rows.Count, 1).End(xlUp).Row + 1
                    Sheets("Archive").Cells(lg, 1).Resize(, 9).Value = _
                    .Cells(i, 1).Resize(, 9).Value
                    .Cells(i, 1).EntireRow.Delete
                    End If
                Next
                .Range("A2:I21").Borders.LineStyle = 1
            End With
        End If
    End If
Next ws
End Sub
 

lord_2009

XLDnaute Nouveau
Re : Deux petits soucis (macro + une formule)

Merci encore et désolé pour le retard pour la réponse, j'ai eu quelque truc a régler malheureusement.

Pour la macro c'est pas ce que je souhaite complètement, lorsque une ligne est supprimé j'ai bien une ligne de tableau qui se crée en dessous mais qui ne copie pas les formules que je souhaite.

voici un exemple quelconque en pièce jointe avec la colonne H qui dispose d'une formule que je souhaiterais qu'elle soit copié dans les lignes crée en dessous.

et ceci pour toute les feuilles si jamais une ligne était supprimé car contenant le mot fini.

je sais pas encore si c'est vraiment clair^^

exemple: Ma première ligne de ma feuille 1 contient le mot fini et deux ligne de ma feuille 2 contiennent le mot fini

je déclenche la macro toute les lignes contenant le mot fini disparaît et 1 ligne se crée dans la feuille 1 en dessous et 2 ligne se crée dans la feuille 2 en dessous du tableau permettant que mon tableau contienne toujours 21 cellule en long
et biensur les lignes crée prennent en compte la totalité des formules des autres lignes.
petite précision les deux feuilles ont des formules qui sont différentes.

je remercie encore d'avance tout le monde
 

Pièces jointes

  • fichier d'exemple excel.xlsm
    17.5 KB · Affichages: 38
  • fichier d'exemple excel.xlsm
    17.5 KB · Affichages: 45
  • fichier d'exemple excel.xlsm
    17.5 KB · Affichages: 50

lord_2009

XLDnaute Nouveau
Re : Deux petits soucis (macro + une formule)

En même temps si on pouvait me donner une solution pour les formules.
Je souhaite que les cellules de la formule soit fixé peut importe si on supprime ou insere des lignes dans les tableaux

merci a vous tous
 

lord_2009

XLDnaute Nouveau
Re : Deux petits soucis (macro + une formule)

J'ai encore un truc a demander :)

ouais j'en rajoute mdr^^

voilà j'aurais aimé faire un tableau dynamique de toute mes feuilles formés exactement de la même facon.

le problème c'est que j'ai tenté le tableau dynamique avec étiquette (seul possibilité a ma connaissance pour combiner plusieurs base de donnée) et malheureusement je dispose uniquement de DEUX paramètre : LIGNE COLONNE
et biensur à l'interieur de ligne il y a rien car j'ai pas de ligne
et à l'interieur de colonne ya tout ce que je veux avoir sans possibilité de le séparer comme dans TCD avec une seul BDD.
je me demandais si il y aurait moyen de justement séparé les étiquettes de l'étiquette colonne

je suppose que non car j'ai a peu presque tout tenté je crois^^

si non y a t il d'autres solutions

excepté celle de faire qu'une seul BDD car je préféré avoir plusieurs feuilles qu'une seul et unique BDD.

voilà si jamais il y a un sauveur

ps mes demandes précédente restent d'actualité biensur :)

je remercie d'avance tout le monde
 

Discussions similaires

Statistiques des forums

Discussions
312 047
Messages
2 084 864
Membres
102 690
dernier inscrit
souleymaane