Copier dans dernière colonne vide sur x onglets

Bonsoir

J'aimerai sauvegarder des données saisie dans l'onglet feuil1 (daata1 à data3).

A chaque fois une machine déverse automatiquement les résultats dans cette feuille et je souhaiterai les répartir à des fins de suivi et d'analyse.

Chaque colonne de cette feuille doit être sauvegarder en décalant vers le droite (sur la prochaine zone vierge) sur les autres feuilles

Exemple la plage data1 dans la feuil2...data2 dans feuil3 et data4 dans feuil4.

En revanche ce fichier "générique" peut-être renommé au niveau des onglets pour faciliter le visuel d'utilisation. Donc je pense qu'il ne faut pas s'appuyer sur les noms des onglets pour y arriver.

Si une personne peut m'aider..

4save.xls (16.50 Ko)

Salut Steve,

- ta "machine" t'envoie ces valeurs à CET endroit et sous cette forme précise ? Etonnant pour une machine : j'aurais cru en [A1] ;
- les emplacements de sauvegarde sont bien ceux dont tu as besoin ou jetés au hasard pour l'exemple ?

Avec des certitudes, on pourra ne faire le travail qu'une fois...


A+

Bonsoir curulis57

Effectivement cette machine sort du csv auto ou du txt si je veux. Elle est indexée sur B5....j'en ai également une autre sur E9.

je ne maîtrise pas ce point de départ mais il est en tout point repérable quel que soit le prog que je lui demande

Merci pour l'aide

Salut Steve,

la macro démarrera automatiquement à chaque nouvelle insertion de données de ta "machine".
La macro vérifie l'existence de la feuille-cible et la crée au besoin : tes données peuvent donc grossir en nombre de colonnes sans souci.

Ici, pour une première utilisation de démo, inscris le chiffre manquant en [A5] = 1

Private Sub Worksheet_Change(ByVal Target As Range)
'
Dim iOK%, iRow%, sSheet$
'
Application.EnableEvents = False
Application.ScreenUpdating = False
'
iCol = UsedRange.Columns.Count
For x = 2 To iCol
    iOK = 0
    sSheet = "Data" & CStr(x - 1)
    For y = 1 To Sheets.Count
        If Sheets(y).Name = sSheet Then _
            iOK = 1: _
            Exit For
    Next
    If iOK = 0 Then Worksheets.Add(after:=Sheets(Sheets.Count)).Name = sSheet
    With Worksheets(sSheet)
        If iOK = 0 Then .Range("B12").Value = "Save Data " & x - 1
        Range(fctCol(x) & 5).Resize(Range(fctCol(x) & Rows.Count).End(xlUp).Row, 1).Cut _
            Destination:=.Range(fctCol(.Cells(13, Columns.Count).End(xlToLeft).Column + 1) & 13)
        iRow = .UsedRange.Rows.Count
        .Range("A13") = 1
        .Range("A13").Resize(iRow - 1, 1).DataSeries rowcol:=xlColumns, Type:=xlChronological, step:=1, stop:=iRow - 1
    End With
Next
'
Application.ScreenUpdating = True
Application.EnableEvents = True
'
End Sub
4steve.xlsm (16.64 Ko)


A+

Merci pour le retour en effet cela correspond....

Je vais essayer de le tester et le reproduire au besoin

Merci pour l'aide

Rechercher des sujets similaires à "copier derniere colonne vide onglets"