Probleme de macro copier coller à la suite

Bonjour

j'ai un problème avec une macro copier coller sur le bouton 1 de l'onglet sauvegarde muret ,au lieu de coller dans planning à la suite d'une ligne vide il me colle la ligne à la suite mais en partant de bas .

Pouvez vous m'aider

Merci

Voici le code que j'utilise, il marche pourtant bien dans le sens copier ligne dans planning et coller ligne à la suite dans sauvegarde muret mais dans le sens copier ligne dans sauvegarde muret et coller ligne à la suite dans planning il colle à la fin du tableau;

Sub RETOURPLANNINGA5()

'

' RETOURPLANNINGA5 Macro

' Retour ligne dans planning

'

' Touche de raccourci du clavier: Ctrl+Shift+R

'

Range("A5:G5").Select

Selection.Copy

Sheets("PLANNING").Select

Range("A" & Range("A65536").End(xlUp).Row + 1).PasteSpecial (xlPasteValues)

End Sub

Merci

Bonjour,

Essai ceci ... (code emprunté à un exemple de Jean-Eric ) ...

Sub RETOURPLANNINGA5()
    '
    ' SAUVEGARDEMURET Macro
    ' Retour ligne dans planning
    '
    ' Touche de raccourci du clavier: Ctrl+Shift+R

Dim lo As ListObject
Dim Ws As Worksheet
Dim arr(6) As Variant
Dim Cell As Range

    Set Ws = Worksheets("SAUVEGARDE MURET")
    With Ws
        arr(0) = .Range("A5")
        arr(1) = .Range("B5")
        arr(2) = .Range("C5")
        arr(3) = .Range("D5")
        arr(4) = .Range("E5")
        arr(5) = .Range("F5")
        arr(6) = .Range("G5")
    End With

    Set lo = Range("Tableau1").ListObject

    With lo
        If .InsertRowRange Is Nothing Then
            Set Cell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
        Else
            Set Cell = .InsertRowRange.Cells(1)
        End If
    End With
    Cell.Resize(, 7).Value = arr
End Sub

ric

Bonjour et merci de ton retour mais ça fait toujours pareil ça colle dans le tableau à partir de la dernière ligne de mon tableau dans planning

Bonjour,

Excuse-moi, j'ai oublié une étape >

Dans la feuille "PLANNING", sélectionne toutes les lignes vides du tableau > clique droit > Supprimer > Lignes de tableau.

Puis teste le nouveau code.

ric

Oui ça marche mais ça ne me va pas parce je suis obligé d'effacé les ligne du tableau .il y a pas une autre solution?

Bonjour,

Je ne comprends pas ton besoin. Peux-tu me décrire ce qui ne va pas ?

L'on ne conserve pas les lignes vides d'un tableau; c'est inutile.

L'on ajoute au fur et à mesure les lignes que l'on a besoin afin d'insérer des données.

ric

je veux le garder, en plus dans planning j'ai un bouton pour effacer planning mais ça garde le tableau donc après il faut effacer manuellement en clic droit et quand on rempli manuellement le tableau ne se remet pas.

Bonjour,

Remplace la macro "RELEASE" du Module1 par ceci >

Sub RELEASE()
    ' Vider le Tableau1 de la feuille Planning

Dim lo As ListObject
Dim X As Integer
Dim Cell As Range

    Set lo = Range("Tableau1").ListObject

    With lo
        Set Cell = .HeaderRowRange.Cells(1)

        For X = Cell.Row + 1 To .ListRows.Count + 4
            .ListRows(1).Delete
        Next X
    End With
End Sub

Ça va faire plus propre.

ric

En plus ça renvoie à la ligne après le tableau alors que j'ai besoins que ça renvoie dans le tableau

Bonjour,

J'ai beaucoup de difficulté à comprendre ton souci.

Est-ce que tu peux me décrire ce qui se passe et où ?

ric

je voudrais que la ligne A5 de la feuille SAUVEGARDE MURET se colle à la suite(PREMIÈRE LIGNE VIDE DU TABLEAU) mais dans le tableau de la feuille PLANNING et non à la suite du tableau .C'est pour ça que je veux garder le tableau dans planning.

Merci encore de t'occuper de mon cas

Bonjour,

Si le tableau de la feuille "PLANNING" ne contient pas de lignes vides,

( la macro du bouton "EFFACER PLANNING" supprime toutes les lignes du tableau)

Le Bouton 1 de la feuille "SAUVEGARDE MURET" >

  • ajoute une ligne dans au tableau de la feuille "PLANNING"
  • et y colle les données

Teste le fichier joint.

Dis-moi si cela convient ou si je suis dans le champ.

ric

oui c'est super ça marche j'aurais préférer que le tableau reste mais bon c'est pas mal du tout.Est ce que c'est possible de rajouter en plus une fois appuyer sur le bouton qu'on revienne à la feuille planning automatiquement ?(si possible)

Merci

Bonjour,

Le code du Bouton 1 se déroule sans aller dans la feuille "PLANNING".

Mai si tu veux que la feuille "PLANNING" soit affichée à la fin du traitement, ajoute ... juste avant le "End Sub"

Worksheets("PLANNING").Activate

ric

Oui ca marche , je voudrais essayer a la place de copier faire un couper peux tu me dire ce qu'il faut changer dans le code?

Bonjour,

Mais avant ... dis-moi ... y aura-t-il une boucle à faire pour traiter toutes ou certaines lignes du tableau de la feuille "SAUVEGARDE MURET" ???????

ric

Je sais pas ce qu'est une boucle mais on utilise la sauvegarde pour un transport programmé donc dans planning mais repoussé donc on l'envoie dans sauvegarde et on le rebasculera dans planning le moment venu

Bonjour,

Pour le couper-coller, l'on copie, puis l'on supprime la ligne source (voir l'ajout de l'avant-dernière ligne de la macro)

Sub RETOURPLANNINGA5()
    ' SAUVEGARDEMURET Macro
    ' Retour ligne dans planning
    '
    ' Touche de raccourci du clavier: Ctrl+Shift+R
Dim lo As ListObject
Dim Ws As Worksheet
Dim arr(6) As Variant
Dim Cell As Range

    Set Ws = Worksheets("SAUVEGARDE MURET")
    With Ws
        arr(0) = .Range("A5")   ' mémorise les infos
        arr(1) = .Range("B5")
        arr(2) = .Range("C5")
        arr(3) = .Range("D5")
        arr(4) = .Range("E5")
        arr(5) = .Range("F5")
        arr(6) = .Range("G5")
    End With

    Set lo = Range("Tableau1").ListObject       ' réfère au tableau

    With lo
        If .InsertRowRange Is Nothing Then      ' ajout une ligne si données présentes
            Set Cell = .HeaderRowRange.Cells(1).Offset(.ListRows.Count + 1)
        Else
            Set Cell = .InsertRowRange.Cells(1) ' ajoute une ligne si le tableau est vide
        End If
    End With
    Cell.Resize(, 7).Value = arr            ' colle les données mémorisée

    Ws.Range("A5:G5").Delete Shift:=xlUp    ' supprime la ligne source

    Worksheets("PLANNING").Activate         ' active la feuille
End Sub

Mais attention, tu as une liste dans la feuille "SAUVEGARDE MURET" et un tableau dans la feuille "PLANNING". Chacun doit être traité différemment.

ric

ça marche très bien au top du top lundi je vais épater mes collègues un grand merci pour la compétence et la disponibilité je fini les réglages

Merci

Rechercher des sujets similaires à "probleme macro copier coller suite"