Copier plage Cellule vers une autre feuille selon une valeur InputBox

Bonjour,

J'essaie depuis plusieurs jours de trouver une solution à ma demande. J'ai un fichier qui me sert d'inventaire pour le matériel dans mon travail.

Dans ce fichier j'ai 2 feuilles: Inventaire et Récap.

J'ai créé 2 boutons sur la feuille "inventaire":

1-Réinitialisation de la feuille "inventaire" en effacant les chiffres que j'ai précédemment rempli, tout en gardant les formules de calculs

Sub Reinit()

'

' Reinit Macro

Range("A5:X25").Select

Selection.ClearContents

Range("A26:V32").Select

Selection.ClearContents

Range("W28:X32").Select

Selection.ClearContents

Range("H36:I38").Select

Selection.ClearContents

Range("Y15").Select

End Sub

2-un bouton pour demander la semaine à sauvegarder. En valider par exemple 12, je souhaite que les valeurs des cellules A34:X34 se copient sur la feuille "Récap" en B17:Y17.

J'ai saisie S1/S2/S3/etc../S52 à partir de A6. La ligne correspondant à la S12 est donc bien la ligne 17

Sub essai()

Dim resultat As String

resultat = InputBox("Indiquez le numéro de la semaine à enregistrer ?", "Sauvegarde des données de l'inventaire") 'La variable reçoit la valeur entrée dans l'InputBox

If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat

MsgBox resultat

End If

End Sub

J'espère que mes explications sont claires et compréhensibles.

Si vous avez besoin d'info supplémentaires, n'hésitez pas.

Je vous remercie

Bonsoir

Votre fichier ne contient pas les deux feuilles que vous mentionnez. Toutefois, utilisez ces deux codes

1. reinit

Sub Reinit()
' Reinit Macro

Range("A5:X25").ClearContents
Range("A26:V32").ClearContents
Range("W28:X32").ClearContents
Range("H36:I38").ClearContents
End Sub

2. Recap

Sub essai()
Dim resultat As String
Dim lig As Byte

resultat = InputBox("Indiquez le numéro de la semaine à enregistrer ?", "Sauvegarde des données de l'inventaire") 'La variable reçoit la valeur entrée dans l'InputBox

If resultat <> "" Then 'Si la valeur est différente de "" on affiche le résultat
    On Error Resume Next
    lig = Sheets("suivi").Range("A:A").Find("S" & resultat, LookIn:=xlValues, lookat:=xlWhole).Row
    If lig > 0 Then
       Sheets("Essai").Range("A34:X34").Copy
       Sheets("Suivi").Range("B" & lig).PasteSpecial Paste:=xlPasteValues
    End If
End If
End Sub

Cordialement

oups en effet.

alors la feuille "essai" correspond à la feuille "inventaire"

la feuille "suivi" correspond à la feuille "Récap"

Le fichier contient les bonnes feuilles.

Merci de votre proposition Dan.

J'ai testé, mais rien ne se passe avec la macro proposée.

Re

J'ai testé, mais rien ne se passe avec la macro proposée.

Normal puisque vous ne mettez par les bons noms de feuilles et que vous inversez les lignes de code

Reprenez tout le code que je vous ai donné et changez uniquement le nom des feuilles.

Merci Dan

en effet l'accent est problématique.

Avec votre proposition c'est fonctionnel.

Merci

Attention à la position de On error resume next que dans votre dernier fichier, que je ne sais pourquoi, vous avez changée

Cordialement

Rechercher des sujets similaires à "copier plage feuille valeur inputbox"