Code VBA copie de donnees

Bonjour ,

j'ai créé un code il y a plusieurs mois , j'ai du effectuées des modifications tel que la suppression de colonnes .

Cependant je n'arrive pas a réadapter le code , pourriez-vous m'aider a comprendre le problèmes

Sub Archiver_signataire_passage()
Dim i As Long
With Sheets("PASSAGE SIGNATAIRE")
i = .Range("CQ" & Rows.Count).End(xlUp).Row + 1
If .Range("B9").Value = "" Or .Range("C9").Value = "" Or .Range("D9").Value = "" Or .Range("E9").Value = "" Then

MsgBox ("Pour archiver la semaine merci de remplir tous les champs")
Exit Sub
Else
If MsgBox("Etes-vous certain de vouloir archiver la semaine  !!?", vbYesNo, "Demande de confirmation") = vbYes Then
.Range("B9,C9,D9,E9").Copy
.Range("CQ" & i).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:= _
        False, Transpose:=False
Application.CutCopyMode = False
MsgBox ("Semaine archivée")
End If
End If
End With
End Sub

Merci d'avance

Cordialement

8test-1.xlsx (24.09 Ko)

Bonjour,

Pas possible de comprendre le problème sans connaitre l'objectif du code. J'ai fait un essai et tout fonctionnent ...

Bonjour Numero 2,

Effectivement dsl , le but de la macro est de copier les données de B9 a E9 dans CP a CT en recherchant la dernière ligne active et de copier en valeur a la fin.

De plus a fin d'éviter les erreurs , j'ai mis un message box pour que toutes les données entre B9 et E9 ne soit pas vide

Ah bon , je viens de tester ci dessous le message d'erreur :(

image

Merci d'avance

ah ben si c'est que ça l'erreur, alors:

Le problème vient de ta feuille de calcul, pas de ton code, vu qu'il y a des erreurs dans les cellules de B9 à E9 la macro n'arrive pas à les gérer.

Il faut rajouté un sierreur pour afficher une valeur que la macro pourra comprendre.

15test-1.xlsm (31.55 Ko)

et au passage, si tu souhaite alléger le code:

Sub Archiver_signataire_passage()
Dim i As Long
With Sheets("PASSAGE SIGNATAIRE")
i = .Range("CQ" & Rows.Count).End(xlUp).Row + 1
If .Range("B9") = "" Or .Range("C9") = "" Or .Range("D9") = "" Or .Range("E9") = "" Then

MsgBox ("Pour archiver la semaine merci de remplir tous les champs")
Exit Sub
Else
If MsgBox("Etes-vous certain de vouloir archiver la semaine  !!?", vbYesNo, "Demande de confirmation") = vbYes Then
.Range("B9:E9").Copy
.Range("CQ" & i).PasteSpecial xlPasteValues, xlNone, False, False
Application.CutCopyMode = False
MsgBox ("Semaine archivée")
End If
End If
End With
End Sub

Bonjour Numero 2

Waouh , merci beaucoup , je n'aurai pas pensée au si Erreur ....

Merci encore

Bonne journée

Rechercher des sujets similaires à "code vba copie donnees"