Copier/coller une suite de donnees a la suite

Bonjour à tous,

Acheteuse, je travaille sur un tableau de besoin lié à l'ordonnancement. J'ai créé une macro capable de convertir mes données de production selon des codes recettes. Jusque là tout va bien.

Mon problème:

  • Mon tableau d'origine est de cette façon (voir fichier pj feuille "tableau d'origine")=> il change chaque semaine et varie en terme de nombres de lignes et de données forcément.
code recettequantité à S+1 =colonne bleuequantité à S+2 =colonne bleuequantité à S+3 =colonne bleuequantité à S+4 =colonne bleuequantité à S+6 =colonne bleue
A
B
C
  • Pour pouvoir mettre ces données dans mon ERP (voir fichier pj feuille: "fichier ERP voulu", je dois faire un fichier comme ci-dessous qui s'importe dans cet ERP:
code recettequantitédate
A
B
C


J'ai besoin d'une MACRO qui me permette de copier/coller les données du tableau d'origine vers le fichier d'import ERP. Celui-ci doit être de sorte à faire en langage VBA:

Je filtre en quantité S+1 tout sauf 0 => copier coller code recette => mettre dans colonne code recette du fichier ERP

Puis Copier/coller code recette dans fichier ERP

Puis défiltrer, filtrer quantité S+1 tout sauf 0 => copier coller code recette => mettre dans code recette du fichier ERP.....

Et ainsi de suite.

Je suis totalement novice en Excel, je me débrouille via les forums pour améliorer mon quotidien, quand je tente d'enregistrer une macro sur mon besoin exposé ci-dessus, forcément la VBA prend les données.... Le nombre de recette varie chaque semaine, les quantités aussi et j'ai besoin que mon fichier ERP soit ligne par ligne....

Si vous avez une idée pour m'aider car je ne sais même pas comment intituler ma recherche.

Je vous remercie.

@thylia

Hello Athylia,

Sans fichier exemple il sera dur de pouvoir t’aider.

A+,
Kilian

Hello Kilian,

J'ai modifié en mettant un fichier en pj, est-ce que c'est plus clair ?

Merci ;)

Athylia,

Plusieurs questions :

Quelle colonne veux tu filtrer ? Solde S+1 ou Fab S+1 ?
Est-ce que le code recette équivaut au numéro d'article ?
Quand tu dis tout sauf 0, est-ce aussi ce qui est inférieur à 0, ou seulement tout ce qui est supérieur à 0 ?
La date, est-ce celle du jour ?
La colonne RETOUR de la feuille Fichier ERP doit rester vide ?

A+,
Kilian

Pour répondre à tes quesitons:

Quelle colonne veux tu filtrer ? Solde S+1 ou Fab S+1 ? Aucunes des deux, je veux filtrer "conversion S+2"
Est-ce que le code recette équivaut au numéro d'article ? oui
Quand tu dis tout sauf 0, est-ce aussi ce qui est inférieur à 0, ou seulement tout ce qui est supérieur à 0 ? tout ce qui est supérieur à 0
La date, est-ce celle du jour ? non la date est celle du lundi à S+2 à la date d'ouverture du fichier de sorte à ce qui le fichier voulu donne:

code recettequantitédate
Aquantité conversion S+2 de la recette Alundi S+2
Bquantité conversion S+2 de la recette Alundi S+2
Cquantité conversion S+2 de la recette Alundi S+2
Aquantité conversion S+3 de la recette A

lundi S+3

Bquantité conversion S+3 de la recette Blundi S+3
Cquantité conversion S+3 de la recette Blundi S+3

La colonne RETOUR de la feuille Fichier ERP doit rester vide veux filtrer les colonnes "conversion s+1" => oui c'est l'import du fichier excel dans l'ERP qui génère des données dans cette colonne

:) merci

bonsoir,

premier essai

Sub Conversions()
     Dim Out
     mescolonnes = Array(8, 12, 16)     'le numéro des 3 colonnes que vous voulez exporter
     a = Sheets("tableau d'origine").Range("A1").CurrentRegion.Value
     ReDim Out(1 To 3 * UBound(a), 1 To 3)     'preparer une matrice assez grande

     lundi = CDbl(Date - WorksheetFunction.Weekday(Date, 2) + 1)     'le lundi de cette semaine
     For i = 2 To UBound(a)     'boucle sauf l'entête
          If Not IsError(a(i, 3)) Then     'la libelle article n'est pas faux
               For j = 0 To 2     'boucle 3 colonnes
                    If a(i, mescolonnes(j)) > 0 Then     'quantité >0
                         ptr = ptr + 1     'incrementer pointer
                         Out(ptr, 1) = a(i, 2)     'code article
                         Out(ptr, 2) = a(i, mescolonnes(j))     'quantité
                         Out(ptr, 3) = lundi + j + 2     'le jour + x
                    End If
               Next
          End If
     Next

     With Sheets("fichier ERP voulu").Range("E2")     'plage de output
          .Resize(ptr, 3).Value = Out     'les valeurs
          .Resize(, 3).EntireColumn.AutoFit     'ajuster largeur des colonnes
     End With
End Sub

C'est merveilleux !! Merci énormément BsAlv

Je vais retravailler un peu les histoires de date mais j'ai compris la base :) PARFAIT !

J'ai regardé un peu la propo de BdALv,

Tout fonctionne à la perfection, sauf un point sur la date:

A partir de Out (ptr, 3) = lundi + j + 2 => Connais-tu/connaissez-vous le moyen de mettre directement une fonction qui donne :

Pour les quantités en colonne 8 => lundi de la S+1 (dans le "fichier ERP voulu")

Pour celles en colonne 12 => lundi de la S+2

....

En gros tout est ok, il faut juste que l'intervalle en colonne 3 du "Fichier ERP voulu" soit de 7 jours entre chaque date

Code recetteQuantitéDatebesoin de cette intervalle là:
123345882jeu 28/07/202215/08/2022
1233451380ven 29/07/202208/08/2022
123346480ven 29/07/202208/08/2022
123347420mer 27/07/202201/08/2022
1233471320jeu 28/07/2022
1233471320ven 29/07/2022

J'espère être clair

bonjour

Out(ptr, 3) = lundi + (j+1) *7 ' (j+1) semaines plus tard

Rechercher des sujets similaires à "copier coller suite donnees"