VBA recherche cellule à partir messagebox et colle en dessou
Bonjour les Excelistes,
J'ai un petit soucis, je souhaiterai réaliser une macro qui sélectionne le bilan de ma semaine en cours et le colle dans un autre onglet ( le bilan annuel ) sous la semaine sélectionné préalablement dans la message box.
je sèche pour la macro qui recherche la semaine entrée dans la message box et colle à la suite mon bilan
ci-joint un fichier beaucoup plus explicite
mercid'avance pour votre aide
Bonsoir Meriadec, bonsoir le forum,
En pièce jointe ton fichier modifié. Il est doté d'un bouton de commande Bilan. Tu cliques sur ce bouton, ça ouvre une boîte d'entrée demandant le numéro de la semaine. Tu renseignes le numéro de la semaine et tu valides...
Le code du bouton :
Private Sub CommandButton1_Click() 'bouton "Bilan"
Dim BS As Object 'déclare la variable BS (onglet Bilan Semaine)
Dim BA As Object 'déclare la variable BA (onglet Bilan Annuel)
Dim NS As Variant 'déclare la variable NS (Numéro de la Semaine)
Dim SEM As String 'déclare la variable SEM (SEMaine)
Dim COL As Byte 'déclare la variable COL (COLonne)
ActiveCell.Select 'enlève le focus au bouton
Set BS = Sheets("bilan semaine") 'définit l'onglet BS
Set BA = Sheets("bilan annuel") 'définit l'onglet BA
NS = Application.InputBox("Tapez le numéro de la semaine (sans le S)", "SEMAINE", Type:=1) 'définit la boîte d'entrée BS
If NS = False Then Exit Sub 'si bouton Annuler de la boiîte d'entrée, sort de la procédure
NS = Format(NS, "00") 'formate le numéro de semaine ns
SEM = "S" & NS 'définit la semaine SEM
On Error Resume Next 'gestion des erreurs (en cas d'erreur passe à la ligne suivante)
COL = BA.Rows(1).Find(SEM, , xlValues, xlWhole).Column 'définit la colonne COL (génère une erreur si SEM n'est pas trouvée)
If Err <> 0 Then 'condition : si une erreur a été générée
Err.Clear 'efface l'erreur
MsgBox "Numéro de semaine invalide !" 'message
Exit Sub 'sort de la procédure
End If 'fin de la condition
On Error GoTo 0 'annule la gestion des erreurs
BA.Cells(2, COL).Value = BS.Range("G2").Value 'récupère le bilan de la machine A dans la colonne de la semaine SEM
BA.Cells(3, COL).Value = BS.Range("G4").Value 'récupère le bilan de la machine B dans la colonne de la semaine SEM
BA.Cells(4, COL).Value = BS.Range("G7").Value 'récupère le bilan de la machine C dans la colonne de la semaine SEM
MsgBox "Données envoyées à la semaine " & NS & " du bilan annuel !" 'message
End SubLe fichier :
Merci pour la rapidité, ça fonctionne nickel
il me reste plus qu'à faire une modif pour pas qu'on puisse écraser un bilan par erreur