Transfert de données spécifique d'un classeur a un autres

Bonjour

Mon problème est le suivant :

J'ai une base qui contient certain calcule et je voudrais savoir si il y a un moyen de copier des valeurs de certaines cellules d'une ligne sous une condition ( exemple: supérieur a 0) vers un autre classeur ou il y'aura les entêtes des cellules voulues.

Je vous laisse ci-joint un exemple simplifier.

Merci =)

11exemple.xlsx (9.26 Ko)

Bonjour Celeborn, bonjour le forum,

Ton exemple nous montre une copie d'un onglet vers une autre onglet et toi tu nous parles d'un classeur vers un autre classeur. Qu'en est-il exactement ? F est-elle bien la colonne de référence ?

Attendant tes réponses...

Bonjour Celeborn, bonjour le forum,

Ton exemple nous montre une copie d'un onglet vers une autre onglet et toi tu nous parles d'un classeur vers un autre classeur. Qu'en est-il exactement ? F est-elle bien la colonne de référence ?

Attendant tes réponses...

Je suis désolé du retard de ma réponse

En fait, Je veux copier les cellules vers une autre feuille (c'est la feuille 2 dans l'exemple) et les ententes voulue sont en vert, la colonne A contient des valeurs unique alors que la colonnes G est sous laquelle sera appliqué ma condition (Mtn >0)

je tiens juste a vous signaler que c'est juste un exemple,dans mon cas réal j'ai plusieurs conditions a établir.

Merci pour votre aide.

Re,

Voici le code pour la condition demandée. Après, si tu veux plusieurs conditions, ça risque de compliquer un peu plus (il est préférable de fournir tous les caractéristique de ta requête dès le départ pour éviter de faire et refaire le code)...

Sub Macro1()
Dim OS As Worksheet 'déclare la variable OS (Onglet Source)
Dim OD As Worksheet 'déclare la variable OD (Onglet Destination)
Dim TV As Variant 'déclare la variable TV (Tableau des Valeurs)
Dim I As Integer 'déclare la variable I (Incrément)
Dim K As Integer 'déclare la variable K (incrément)
Dim TL() As Variant 'déclare la variable TL (Tableau des Lignes)

Set OS = Worksheets("Feuil1") 'définit l'onglet source OS (à adapter à ton cas)
Set OD = Worksheets("Feuil2") 'définit l'onglet destination OD (à adapter à ton cas)
OD.Range("A1").CurrentRegion.Offset(1, 0).ClearContents 'éfface d'eventuelle anciennes valeurs dans l'onglet destination
TV = OS.Range("A1").CurrentRegion 'définit le tableau des valeurs TV
K = 1 'initialise la variable K
For I = 2 To UBound(TV, 1) 'boucle sur toutes les lignes I du tableau des valeurs TV (en partant de la seconde)
    If TV(I, 7) > 0 Then 'condition : si la donnée ligne I colonne 7 (=> colonne G) est supérieure à zéro
        ReDim Preserve TL(1 To 3, 1 To K) 'redimensionne le tableau des lignes TL (3 lignes, K colonnes)
        TL(1, K) = TV(I, 1) 'récupère dans la ligne 1 de TL la donnée en colonne 1 de TV (=> transposition)
        TL(2, K) = TV(I, 3) 'récupère dans la ligne 2 de TL la donnée en colonne 3 de TV (=> transposition)
        TL(3, K) = TV(I, 7) 'récupère dans la ligne 3 de TL la donnée en colonne 7 de TV (=> transposition)
        K = K + 1 'incrémente K (ajoute une colonne au tableau des lignes TL)
    End If 'fin de la condition
Next I 'prochaine ligne de la boucle
'si K est supérieur à 1 (donc si au moins une ligne respecte la condition) renvoie dans la cellule A2 redimensionnée de l'onflet OD, le tableau TL transposé
If K > 1 Then OD.Range("A2").Resize(UBound(TL, 2), UBound(TL, 1)).Value = Application.Transpose(TL)
End Sub

Merci beaucoup ThauThème pour ton aide.

Les commentaires insérés dans ton code vba me suffisent pour comprendre ou le modifier.

Les conditions que j'essaie d’intégrer son aussi simple que la première donc j'essayerais de modifier le code et je viendrais vers toi si je trouve des problèmes

Encore Merci pour ton temps, passer une bonne journée !

Rechercher des sujets similaires à "transfert donnees specifique classeur"