Aide macro excel

driven

XLDnaute Nouveau
Bonjour à tous, ayant fais quelques recherches sur le net, mais ayant peu de connaissance en VBA, je me permet de soliciter votre aide pour une petite problématique.

Je vous explique

En partant des hypothèses suivantes :

2 classeurs nommé « caisse » et « saisie »

Le classeur nommé « caisse » possède :
- 12 onglets portant la mention des mois (janvier, février, mars, etc…)
- La colonne « A » correspond aux dates (A1 à A31)
- La colonne « B » correspond à des montants.

Le classeur nommé « saisie » possède dans un onglet:
- une cellule « date » disons « D1 »
- une cellule « montant » disons « M1 »
- un bouton nommé disons « commandButton1»


Ce que je voudrais faire :

Du classeur « saisie » et ce depuis le bouton, lancer une macro qui me permettrai de:

- copier la valeur de la cellule « M1 » (le montant)
- ouvrir le classeur « caisse »
- rechercher la ligne dans l’onglet respectif à la date faisant référence à la cellule « D1 »)(la date)
- coller la valeur de la cellule « M1 » dans le cellule de la colonnes B
- enregistrer et fermer le classeur « caisse »

Je connais un peu Excel avec les fonctions comme rechercheV, mais là je crois que n’ai pas le choix, je suis obligé de passer par de la macro.



Sub Macro1()
'
' Macro1 Macro
Workbooks.Open Filename:= _
"C: \caisse.xlsx"
ActiveWorkbook.Save
ActiveWindow.Close
End Sub


il manque quelques lignes là:eek:


En remerciant d’avance les âmes charitables qui se donneront la peine de me répondre, cordialement.;)
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Aide macro excel

Bonjour Driven et bienvenu, bonjour le forum,

Comme tu es tout nouveau je te recommande vivement de lire la
Lien supprimé du forum. Elle te donne tous les bons plans pour obtenir de l'aide rapidement. Dans ton cas, ça manque cruellement d'exemple en pièce jointe. Pour te proposer une macro qui fonctionne il nous faut la tester et pour la tester il m'a fallu recréer ton envieronnement. En principe je ne le fais pas, je considère que si le demandeur a la flemme moi je l'ai encore plus que lui... Mais comme tu es nouveau j'ai fait une exception...
Le code :
Code:
Sub Macro1()
Dim cs As Workbook 'déclare la variable cs (Classeur Source)
Dim cc As Workbook 'déclare la variable cc (Classeur Cible)
Dim mois As String 'déclare la variable mois
Dim os As Object 'déclare la variable os (Onglet Source)
Dim oc As Object 'déclare la variable oc (Onglet Cible)
Dim r As Range 'déclare la variable r (Recherche)Set cs = ThisWorkbook 'définit le classeur source
Workbooks.Open Filename:= _
"C:\caisse.xlsx" 'ouvre le classeur "caisse.xlsx"
Set cc = Workbooks("caisse.xlsx") 'définit la classeur cible
Set os = cs.Sheets("Feuil1") 'définit l'onglet source (à adapter à ton cas)
mois = Format(os.Range("D1").Value, "mmmm") 'définit le mois
Set oc = cc.Sheets(mois) 'définit l'onglet cible
Set r = oc.Columns(1).Find(os.Range("D1"), , xlValues, xlWhole) 'recherche la date dans la colonne A de l'onglet cible
'si la date existe'place la valeur de A1 dans la colonne b de l'onglet cible
If Not r Is Nothing Then r.Offset(0, 1).Value = os.Range("A1").Value
cc.Save 'sauve la classeur cible
cc.Close 'fermela classeur cible
End Sub
Les fichiers :
 

Pièces jointes

  • caisse.xlsx
    16.4 KB · Affichages: 54
  • Driven_v01.xls
    31.5 KB · Affichages: 45
  • caisse.xlsx
    16.4 KB · Affichages: 61
  • caisse.xlsx
    16.4 KB · Affichages: 56

driven

XLDnaute Nouveau
Re : Aide macro excel

Trop fort tu es un chef:D
Un grand merci pour la rapidité de ta réponse, cela fonctionne à merveille.
désolé pour la non présence de la pièce jointe, ce n'était en aucun cas de la flemme crois moi.

Ca fait des heures que je potasse le truc, j'avais avancé, mais c'était buggé a mort.
Tu viens de me faire gagner pas mal de temps
Encore merci.;)
 

Statistiques des forums

Discussions
312 502
Messages
2 089 023
Membres
104 007
dernier inscrit
Monvieux