Macro pour déplacement automatique d'une cellule

Bonjour à tous,

Je sollicite votre ingéniosité pour la première fois pour m'aider sur une problématique que je rencontre sur mon ERP.

Je travaille dans une imprimerie qui utilise un logiciel de gestion de production nommé Graphisoft. Ce logiciel gère la production depuis l'entrée en stock de la matière première jusqu'à la facturation.

Le cheminement normal d'une affaire est le suivante :

1/ création d'un devis

2/ transformation du devis en commande (attribution d'un n° de commande). La commande est aussi un dossier de fabrication.

3/La création d'un dossier génère en pratique (mais pas tout le temps) une réservation de matière première dans le stock.

4/ La réservation de matière est compensée par un bon de sortie de matière.

Je ne sais pas pour quelle raison, le logiciel ne permet de produire un tableau qui me donne le n° de bon de sortie pour chaque Commande. Mais le contraire est possible (il peut me donner le n0 de commande pour chaque bon de sortie)

Le seul fichier que j'ai réussi à extraire pour me rapprocher de ce que je veux, est un tableau qui récapitule par N° de sortie, le type de matière concernée et le n° de commande correspondant. Mais le format du tableau n'est pas adéquat pour une analyse détaille d'une grande masse de données.

Pour chaque Bon de sortie, il crée un encadré en gras avec sur la première ligne le mot "sortie" et la cellule d'en face le n° du bon de sortie". Puis en bas, un tableau avec autant de lignes que de matière sortie et le n° de commande correspondant.

Ma requête est la suivante :

Je voudrais savoir si on peut créer une macro qui déplacera automatiquement le n0 du bon de sortie sur les lignes du tableau qu'il contient??

Je vous joins le fichier de données avec un exemple de ce que je souhaiterais avoir.

En vous remerciant par avance pour cotre aide.

Bonjour

une proposition

Sub aargh()
    Set ws = Sheets("Liste des pièces 5")
    fin = False
    i = 2
    While Not fin
        If ws.Cells(i, 1) = "" Then
            ctr = ctr + 1
            If ctr = 3 Then fin = True
        ElseIf ws.Cells(i, 1) = "SORTIE" Then
            nsortie = ws.Cells(i, "B")
            dsortie = ws.Cells(i, "F")
            ws.Cells(i, "B") = ""
            ws.Cells(i, "F") = ""
' la ligne suivante permet d'enlever les entêtes qui se répètent pour chaque sortie
' enlever le caractère ' pour la rendre effective
            'If i > 2 Then Rows(i - 1 & ":" & i + 3).Delete shift:=xlUp: i = i - 2
            ctr = 0
        ElseIf ws.Cells(i, 1) = "Code du stock" Then
            ws.Cells(i, "E") = "N° sortie"
            ws.Cells(i, "F") = "Date sortie"
            ctr = 0
        Else
            ws.Cells(i, "E") = nsortie
            ws.Cells(i, "F") = dsortie
            ctr = 0
        End If
        i = i + 1
    Wend

End Sub
Rechercher des sujets similaires à "macro deplacement automatique"