Erreur 1004 fonction range

Bonjour à tous,

Je souhaiterais réalisé un macro pour archiver mes données sur la même feuille, j'avais déjà un code qui marche actuellement pour 2 autres archivages.

Voici le code ;

Sub Archiver_chargecapa()
Dim i As Long
With Sheets("INDICATEUR CHARGE-CAPACITE CUMU")
i = .Range("M" & Rows.Count).End(xlUp).Row + 1
If .Range("I11").Value = "" Or .Range("F5").Value = "" Or .Range("F7").Value = "" Or .Range("K2").Value = "" Or .Range("K3").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("I11,F5,F7,K2:K3").Copy
.Range("M" & 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

Mon soucis se situe sur cette ligne ; erreur 1004 cette action ne fonctionne pas sur plusieur sélection....

.Range("I11,F5,F7,K2:K3").Copy

J'ai essayer de tordre la problème dans tous les sens " avec mes capacités"... mais d'autre message d'erreurs...

j'ai essayer avec Union, Cells....

De plus pour mon info , est-il possible dans cette macro de faire l'archivage en fonction d'un choix de segment et de d'archiver les valeur après ? ( ex ; segment :tout sauf client => j'archive / remise a 0 du segment / puis segment que les clients => puis on archive et on dé filtre..)

J'espère avoir été assez clair pour votre compréhension, sinon n'hésite pas a me poser des questions

Merci beacoup pour votre aide

Bonjour,

En effet, les valeurs peuvent être discontinues, mais obligatoirement sur la même ligne ou la même colonne.

Réorganise si tu peux ton document !

Bonjour,

Essaie ainsi :

Public Sub Archiver_chargecapa()
Dim ws As Worksheet
Dim a, b()
Dim Answer As VbMsgBoxResult
Dim i As Long
    Set ws = Worksheets("INDICATEUR CHARGE-CAPACITE CUMU")
    a = Split("I11 F5 F7 K2 K3")
    For i = 0 To UBound(a)
        If IsEmpty(ws.Range(a(i))) Then
            MsgBox "Pour archiver la semaine merci de remplir tous les champs.", 64, "Information"
            Exit Sub
        End If
    Next i
    Answer = MsgBox("Etes-vous certain de vouloir archiver la semaine ?", vbYesNo, "Demande de confirmation")
    If Answer = vbNo Then Exit Sub
    ReDim b(UBound(a))
    For i = 0 To UBound(a)
        b(i) = ws.Range(a(i)).Value
    Next i
    With ws
        i = .Cells(.Rows.Count, 13).End(xlUp).Row + 1
        .Cells(i, 13).Resize(, UBound(a) + 1).Value = b
    End With
End Sub

Bonjour Jean-Eric, Bonjour Steelson,

Un grand merci pour votre temps consacrés sur mon problèmes,

Avec vos explications, et le code De Jean-Eric , tout marche Parfaitement

Rechercher des sujets similaires à "erreur 1004 fonction range"