Copier une valeur d'une autre feuille sous condition en VB

Amsa

XLDnaute Nouveau
Bonjour à tous

Je suis toujours en train de développer mon "petit fichier" et je me trouve nez à nez avec un nouveau soucis.
Je vous explique mon fichier Exemple que je ne peut pas vous joindre avant se soir ... :(

Soit une feuille "Accueil" qui contient des données récupérer sur certaine feuilles.
Dans la colonne "F" se trouve des indications de mois de l'année. Je voudrais copier dans la colonne "J" des données se trouvant sur une feuille "Dépense".
Le "truc" serait que si dans la colonne "F" de "Accueil" il y a (par exemple) "janv.-09" que je puisse récuperer la valeur se trouvant dans la colonne "B" de "Dépense" qui est en correspondance avec la date.

Accueil ==> A2 ==> valeur : janv.-09 (soit 01/01/09)
est en correspondance avec
Dépense ==> A2 ==> valeur : 01-2009

Sachant qu'il y aura au max 12 valeurs (12 mois) par feuille, mais que comme dans mon exemple il peut y avoir des sauts de mois... ou pas !

Je pense qu'il faut aller lire la valeur en tant que String, mais apres, j'ai bien essayé de bidouiller un truc avec mon bouton, mais ça ne marche pas du tout (original).

Je vous remercie par avance si vous savez comment me sortir de se problème.

PS: S'il vous faut à tout pris le fichier exemple pour comprendre mon soucis (ce qui est plus que compréhensible), je le mettrais ici se soir.
 

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier une valeur d'une autre feuille sous condition en VB

Bonsoir Amsa, bonsoir le forum,

Pas très clair ton histoire ! Tu nous dis d'abord que les dates se trouvent en colonne F de Accueil puis plus loin, tu dis :
Accueil ==> A2 ==> valeur : janv.-09 (soit 01/01/09)
est en correspondance avec
Dépense ==> A2 ==> valeur : 01-2009
Tu parles de récupérer la valeur en B correspondant à la date. Oui mais la date se trouve où dans Dépense ?

Bref j'attend ton fichier avant de me lancer...
 

Amsa

XLDnaute Nouveau
Re : Copier une valeur d'une autre feuille sous condition en VB

Bonsoir Amsa, bonsoir le forum,

Pas très clair ton histoire ! Tu nous dis d'abord que les dates se trouvent en colonne F de Accueil puis plus loin, tu dis :

Tu parles de récupérer la valeur en B correspondant à la date. Oui mais la date se trouve où dans Dépense ?

Bref j'attend ton fichier avant de me lancer...

Voilà le fichier, en effet comme tu dis je me suis quelque peut mélanger les méninges pour le coup.
En espérant que le fichier aidera a eclaircir le problème.

Merci
 

Pièces jointes

  • Exemple.xls
    25.5 KB · Affichages: 125
  • Exemple.xls
    25.5 KB · Affichages: 123
  • Exemple.xls
    25.5 KB · Affichages: 125

Robert

XLDnaute Barbatruc
Repose en paix
Re : Copier une valeur d'une autre feuille sous condition en VB

Bonsoir Amsa, bonsoir le forum,

Je te propose la macro suivante :
Code:
Private Sub CommandButton1_Click()
Dim cel As Range 'déclare la varialbe cel (CELlule)
Dim mois As String 'déclare la variable mois
Dim r As Range 'déclare la variable r (Recherche)
 
'boucle sur toutes les cellules éditées de la colonne F dans l'onglet "Accueil"
For Each cel In Sheets("Accueil").Range("F2:F" & Sheets("Accueil").Range("F1").End(xlDown).Row)
    If cel.Value <> "" Then 'condition : si la cellule n'est pas vide
        mois = Format(CStr(Month(cel.Value)), "00") 'définit la variable mois
        Set r = Sheets("Dépense").Columns(1).Find(mois & "-", , xlValues, xlPart) 'définit la variable r
        'si il existe au moins une occurrence de r dans la colonne A, place en J (de "Accueil") la valeur de B (de "Dépense")
        If Not r Is Nothing Then cel.Offset(0, 4).Value = r.Offset(0, 1).Value
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
 
End Sub
 

Pièces jointes

  • Amsa_v01.xls
    28.5 KB · Affichages: 188

Amsa

XLDnaute Nouveau
Re : Copier une valeur d'une autre feuille sous condition en VB

Bonsoir Amsa, bonsoir le forum,

Je te propose la macro suivante :
Code:
Private Sub CommandButton1_Click()
Dim cel As Range 'déclare la varialbe cel (CELlule)
Dim mois As String 'déclare la variable mois
Dim r As Range 'déclare la variable r (Recherche)
 
'boucle sur toutes les cellules éditées de la colonne F dans l'onglet "Accueil"
For Each cel In Sheets("Accueil").Range("F2:F" & Sheets("Accueil").Range("F1").End(xlDown).Row)
    If cel.Value <> "" Then 'condition : si la cellule n'est pas vide
        mois = Format(CStr(Month(cel.Value)), "00") 'définit la variable mois
        Set r = Sheets("Dépense").Columns(1).Find(mois & "-", , xlValues, xlPart) 'définit la variable r
        'si il existe au moins une occurrence de r dans la colonne A, place en J (de "Accueil") la valeur de B (de "Dépense")
        If Not r Is Nothing Then cel.Offset(0, 4).Value = r.Offset(0, 1).Value
    End If 'fin de la condition
Next cel 'prochaine cellule de la boucle
 
End Sub

Excelent, ca marche tout comme je veux :)
Un grand merci à toi Robert !
 

Discussions similaires

Membres actuellement en ligne

Aucun membre en ligne actuellement.

Statistiques des forums

Discussions
312 294
Messages
2 086 895
Membres
103 404
dernier inscrit
sultan87