Macro ou non ??

Bonsoir,

j'ai un petit souci avec un classeur . En fait J'ai 4 feuilles nommées tableau général, H,D et S. Dans le tableau general, j'ai une colonne, la E avec différentes catégories, soit H,D et S d'ou le nom des mes autres feuilles.

En fait ce que je veux faire c'est récupérer les données de la catégorie H et qu'elles se mettent dans la feuille correspondante. Je souhaiterais aussi pouvoir y ajouter des lignes.

Je joins le fichier, si quelqu'un pouvait m'éclairer... Merci

https://www.excel-pratique.com/~files/doc/NmdU6Classeur3.xls

Bonsoir,

dans la feuille tableau général, tu veux récupérer les données de quelles colonnes et les mettre où dans les feuille H, S ou D ?

Tes feuilles H, S, D sont vides de titres là

A te relire

Dan

en fait je n'ai pas pu mettre la derniere version du fichier (trop gros). Ce qui doit etre repris dans les autres feuilles sont les valeurs des colonnes A,B,C,D, on laisse tomber la E et il me faut les suivantes. En fait j'ai des formules de calcul dans le tableau général que je dois retouver dans les fauilles H,D ou S (selon la catégorie de la colonne E du tableau general) et pouvoir ajouter des lignes (plusieurs utilisateurs).

Si je ne suis pas clair je peux envoyer le fichier par mail

Merci

Je sens que je ne suis pas claire

en fait sii dans le tableau general , je mets un filtre perso sur la colonne E, je voudrais récupérer les donnees filtrées. Par ex pour H et les exporter vers la feuille correspondante soit H. Et ainsi de suite

cordialement

Bonsoir,

Revoici ton fichier avec une macro qui te fait ce que tu veux je pense.

clique sur le bouton se trouvant sur la feuille tableau général.

Pour les colonnes situées après la colonne E, il te suffit de les préparer à l'avance dans chaque feuille H,S et D.

Vérifie que le niveau de sécurité des macros est sur "MOYEN" dans OUTILS - MACRO - SECURITE et active les macros à l'ouverture du fichier.

https://www.excel-pratique.com/~files/doc/Classeur3.zip

Amicalement

Dan

merci mais je reçois un message d'erreur : impossible d'effectuer le code en mode arret ?

comment je debugge cela?

merci

Bonsoir

Une extraction par formules

https://www.excel-pratique.com/~files/doc/Thama.zip

Cordialement

Edit Amadéus:..Qui se met à jour automatiquement dès qu'on rajoute une ou des lignes sur la première feuille.

re,

Ce message est dû au fait que VBA voit que tu es en modification de code.

Pour être sûr, place le code à la place de celui qui se trouve dans ton fichier :

Sub transfert()
'Macro par Dan pour thamaloux le 10/02/08 pour Excel pratique
Dim H As Integer, S As Integer, D As Integer
Dim ws As String
Application.ScreenUpdating = False
ws = "tableau general"
        H = 2
        S = 2
        D = 2
With Sheets(ws)
For Each cel In Range("E8", Range("E65536").End(xlUp))
 Select Case cel
 Case Is = "H"
    With Sheets("H")
        .Cells(H, 1) = Sheets(ws).Cells(cel.Row, 1)
        .Cells(H, 2) = Sheets(ws).Cells(cel.Row, 2)
        .Cells(H, 3) = Sheets(ws).Cells(cel.Row, 3)
        .Cells(H, 4) = Sheets(ws).Cells(cel.Row, 4)
End With
H = H + 1
 Case Is = "S"
    With Sheets("S")
        .Cells(S, 1) = Sheets(ws).Cells(cel.Row, 1)
        .Cells(S, 2) = Sheets(ws).Cells(cel.Row, 2)
        .Cells(S, 3) = Sheets(ws).Cells(cel.Row, 3)
        .Cells(S, 4) = Sheets(ws).Cells(cel.Row, 4)
End With
S = S + 1
 Case Is = "D"
    With Sheets("D")
        .Cells(D, 1) = Sheets(ws).Cells(cel.Row, 1)
        .Cells(D, 2) = Sheets(ws).Cells(cel.Row, 2)
        .Cells(D, 3) = Sheets(ws).Cells(cel.Row, 3)
        .Cells(D, 4) = Sheets(ws).Cells(cel.Row, 4)
End With
D = D + 1
End Select
Next
End With
End Sub

A te relire

Dan

merci pour votre aide .

J'ai des calculs a faire sur la partie droite du tableau , une colonne quantité et une colonne cout, je voudrais que tout cela passe sur les feuilles appropriées .

merci encore

Re,

quelles colonnes ? A droite il y a des colonnes entre F et AD

Je ne vois pas de colonne Quantité et coût.

Dan

je reposte un lien

https://www.excel-pratique.com/~files/doc/Copie_de_NmdU6Classeur3.xls

en fait je dois retrouver ces colonnes dans toutes les feuilles .

Si j'ai une quantité de 2 devant un matériel de la catégorie h, je dois retrouver ce 2 devant ce meme matériel mais dans la feuille H

you know ? lol

re,

Si j'ai une quantité de 2 devant un matériel de la catégorie h, je dois retrouver ce 2 devant ce meme matériel mais dans la feuille H

Cela n'est pas un pb par contre, si tu veux toutes les données entre les colonnes F et AD, tu dois me le dire car là je vois plusieures colonne avec Qté, etc...

A te relire

Dan

EDITION : Ton tableau en feuille H se présente comment ? Là je ne vois rien dans les entête de colonnes.

https://www.excel-pratique.com/~files/doc/68xFZCopie_de_NmdU6Classeur3.xls

j'ai remis un nouveau lien.

En fait les feuilles H D et S son simplement un tri du tableau general par rapport à la colonne E.

Les colonnes en fait sont les memes pour les 3 feuilles, je n'ai mis là qu'1 morceau sinon le fichier serait trop lourd, mais il y 5 fois ce qui apparait en colonne à mettre en realite.

J'espere que je suis assez claire, des fois je ne me comprends pas moi meme lol.

Merci en tout cas de te démener pour moi

pour etre plus claire c'est en fait une prévision d'achat de matériel ^pour les 5 ans à venir donc une colonne quantité correspond à 1 année et à 1 cout revalorisé. Ceci sur 5 ans et pour 5 structures (maisons) différentes, si cela peut t'eclairer

cordialement

Re,

Dans le fichhier que je t'avais proposé, mets remplace ma macropar celle-ci :

Sub transfert()
'Macro par Dan pour thamaloux le 10/02/08 pour Excel pratique
Dim H As Integer, S As Integer, D As Integer
Dim ws As String
Dim i As Byte
Application.ScreenUpdating = False
ws = "tableau general"
H = 8
S = 8
D = 8
With Sheets(ws)
For Each cel In .Range("E8", Range("E65536").End(xlUp))
 Select Case cel
 Case Is = "H"
    With Sheets("H")
        .Cells(H, 1) = Sheets(ws).Cells(cel.Row, 1)
        .Cells(H, 2) = Sheets(ws).Cells(cel.Row, 2)
        .Cells(H, 3) = Sheets(ws).Cells(cel.Row, 3)
        .Cells(H, 4) = Sheets(ws).Cells(cel.Row, 4)

    i = 6
    Do While i <= Sheets(ws).UsedRange.Columns.Count
    If Sheets(ws).Cells(cel.Row, i).Value > 0 Then .Cells(H, i) = Sheets(ws).Cells(cel.Row, i)
    i = i + 1
    Loop
    End With
    H = H + 1

 Case Is = "S"
    With Sheets("S")
        .Cells(S, 1) = Sheets(ws).Cells(cel.Row, 1)
        .Cells(S, 2) = Sheets(ws).Cells(cel.Row, 2)
        .Cells(S, 3) = Sheets(ws).Cells(cel.Row, 3)
        .Cells(S, 4) = Sheets(ws).Cells(cel.Row, 4)

    i = 6
    Do While i <= Sheets(ws).UsedRange.Columns.Count
    If Sheets(ws).Cells(cel.Row, i).Value > 0 Then .Cells(S, i) = Sheets(ws).Cells(cel.Row, i)
    i = i + 1
    Loop
    End With
    S = S + 1

 Case Is = "D"
    With Sheets("D")
        .Cells(D, 1) = Sheets(ws).Cells(cel.Row, 1)
        .Cells(D, 2) = Sheets(ws).Cells(cel.Row, 2)
        .Cells(D, 3) = Sheets(ws).Cells(cel.Row, 3)
        .Cells(D, 4) = Sheets(ws).Cells(cel.Row, 4)

    i = 6
    Do While i <= Sheets(ws).UsedRange.Columns.Count
    If Sheets(ws).Cells(cel.Row, i).Value > 0 Then .Cells(D, i) = Sheets(ws).Cells(cel.Row, i)
    i = i + 1
    Loop
    End With
    D = D + 1
 End Select
Next
End With
End Sub

Attention, on commence sur la ligne 8 de chaque feuille.

Amicalement

Dan

NB : Ne vois rien de mal à cela mais évite de mettre des fichiers qui ne font qu'alourdir le forum si tu peux t'expliquer par écrit.

Désolée pour la surcharge , je ne connaissais pas le forum, j'éviterais désormais de surcharger ...

Merci pour votre aide en tout cas .

re,

Dis moi si ton problème est résolu et si ton fichier fonctionne

A te relire

Dan

bonjour,

mon fichier fonctionne mais si ce n'est pas trop abusé, je voudrais qu'il puisse également faire la meme chose dans l'autre sens.

C'est à dire que lorsque j'efface une valeur dans le tableau general, que la valeur correspondante disparaisse dans l'autre feuille egalement.

Mais sinon ça fonctionne

re,

si c'est une valeur située entre la colonne B et la dernière colonne à droite, tu réexécutes la macro.

Amicalement

Dan

j'ai essayé de réexécuter en ayant effacer les donnees de la feuille tableau general et ça ne fonctionne pas

Rechercher des sujets similaires à "macro"