Valeur non écrite dans la cellule de destination aprés exécution macro?

Bonjour

je n'arrive pas à m'expliquer pourquoi une valeur copier dans une feuille n'est pas visible dans la cellule de destination...?

Alors que pour d'autres tout se passe bien....

dans l'exemple, impossible de copier cellule C5 vers A3,

image image

Sub Enregistrer()
'
' Enregistrer Macro
'
' Range("A1").Select
Sheets("ARCHIVES").Select
Range("A3").Select
Selection.ListObject.ListRows.Add (1)


Sheets("FORMULAIRE DE SAISIE").Select
Range("B5").Select
Selection.Copy
Sheets("DONNEES").Select
Range("A3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Sheets("FORMULAIRE DE SAISIE").Select
Range("C5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("ARCHIVES").Select
Range("B3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Sheets("FORMULAIRE DE SAISIE").Select
Range("D5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("ARCHIVES").Select
Range("C3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Sheets("FORMULAIRE DE SAISIE").Select
Range("E5").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("ARCHIVES").Select
Range("D3").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

de plus, il me semble que les destinations ne correspondent pas aux données macro

exemple :

cellule départ : Range B5 destination A3 pour la valeur date qui se retrouve dans la cellule C3

D5 se retrouve en D3 alors qu'il est écrit destination C3

E5 vers D3 ... c'est bon

par contre impossible de copier la valeur de la cellule C5 destination A3 ...!

oups, je disjoncte

merci pour vos lumières ...

cordialement

Bonjour Bervanel,

Et le petit classeur exemple représentatif, ce sont les potentiels répondeurs qui doivent aussi le fournir ?

Hello,

Une proposition avec une version un peu plus lisible du truc et de la compréhension que je peux avoir sans fichier...

Sub Enregistrer()

    Dim wsForm As Worksheet
    Dim wsArchives As Worksheet
    Dim wsDonnees As Worksheet
    Dim tbl As ListObject
    Dim newRow As ListRow

    ' Tes différents onglets sous forme de variable
    Set wsForm = Sheets("FORMULAIRE DE SAISIE")
    Set wsArchives = Sheets("ARCHIVES")
    Set wsDonnees = Sheets("DONNEES")
    Set tbl = wsArchives.ListObjects(1) 

    ' Nouvelle ligne haut du tableau
    Set newRow = tbl.ListRows.Add(1)

    ' Vers données
    wsDonnees.Range("A3").Value = wsForm.Range("C5").Value ' Valeur de C5 vers A3

    ' Vers archives
    With wsArchives
        .Range("A3").Value = wsForm.Range("B5").Value 
        .Range("B3").Value = wsForm.Range("C5").Value 
        .Range("C3").Value = wsForm.Range("D5").Value 
        .Range("D3").Value = wsForm.Range("E5").Value 
    End With

    Application.CutCopyMode = False

End Sub

bonjour Bervanel, Baroute78, mafraise,

à mon avis, on perd trop de temps en déclarant tous ces variables, avec With ...End With", c'est plus facile et lisible

Sub Enregistrer()
     Dim c     As Range

     With Sheets("FORMULAIRE DE SAISIE")

          Sheets("DONNEES").Range("A3").Value = .Range("C5").Value     ' Valeur de C5 vers A3

          Set c = Sheets("ARCHIVES").Range("A2").ListObject.ListRows(1).Add.Range     'les 4 cellules d'une nouvelle "listrow" au début du TS à A2 d'ARCHIVES
          c.Resize(, 4).Value = Array(.Range("B5").Value2, , Range("C5").Value2, .Range("D5").Value2, .Range("E5").Value2)     'coller en une fois ces 4 valeurs dans cette plage

     End With

End Sub

Bonjour

Désolé pour l'envoi partiel des éléments, ne voulant surcharger.....et merci aux trois experts qui ont souhaité répondre

voila le fichier

je reconnais que cette macro est "lourde" et que des "pros" auront de suite trouver la bonne formule ....

merci pour vos réponses

10archives.xlsm (67.25 Ko)
Rechercher des sujets similaires à "valeur ecrite destination execution macro"