Aide sur vb

  • Initiateur de la discussion Booba
  • Date de début
B

Booba

Guest
Bonjour a tous,
J' ai un petit prblm pour un projet sous excel, je vous explique:
J'ai 2 feuilles:
- feuil1 avec de A6 à Axx avec les dates du 1/1/03 au 31/12/03
-feuil2 avec en A6 la date du jour (aujourdhui())
et de B6 à V6 une zone de saisie reserve au utilisateur$
Mon but est que les users saisissent sur la feuille 2 et que les données rentrées soit copiées sur la feuille 1 en fonction de la date bien entendus...
J'arrive a le faire pour une valeur en B6 mais le prblm si je met le code pour des valeurs superieurs (ex g6) alors la valeur viendra remplir les cellule precedente.....
Voila mon code pour une valeur (fonctionnel)
Private Sub Worksheet_Change(ByVal zz As Range)
If zz.Address <> "$B$6" Then Exit Sub
Sheets("Feuil2").Range("B" & [match(A6,Feuil2!A6:A65536,0)] + 5) = zz.Value
End Sub

Mais si quelqu'un connait une solution pour l'etendre au cellule voisine et que chaque saisie soit independante...
En vous remerciant d'avance pour l'aide que vous pourriez m'apporter.
Bonne reception et à charge de revanche!!
@+
@lex
 

Pièces jointes

  • exempledates.xls
    35 KB · Affichages: 52
P

Pyrof

Guest
Bonjour,

avec [match(A6,Feuil2!A6:A65536,0)] + 5 tu recupère la ligne dans feuil2

il faut maintenant il faut trouver la premiere cellule vide dans la ligne

l=[match(A6,Feuil2!A6:A65536,0)] + 5
c=1
while isempty(cells(l,c))=false
c=c+1
wend
Sheets("Feuil2").cells(l,c)= zz.Value

a voir .....
 
B

Booba

Guest
MErci de ton aide,
cependant j'ai pas grande experience en vb et c'est un peu chaud, je viens de le mettre en place comme je l'ai compris et ca ne passe pas
Private Sub Worksheet_Change(ByVal zz As Range)
'If zz.Address <> "$C$6" Then Exit Sub
'Sheets("feuil2").Range("C" & [match(A6,feuil2!A6:A65536,0)] + 5) = zz.Value
l = [match(A6,feuil2!A6:A65536,0)] + 5
c = l
While IsEmpty(Cells(l, c)) = False
c = c + l
Wend
Sheets("feuil2").Cells(l, c) = zz.Value

End Sub


Je ne dois pas rentrer le code convenablement....
Bon je persevere et je teste differentes possibilités:))
Si jamais quelqu'un voit une soluces je suis a l'ecoute!!
Meme d'une maniere differente!!
En te remerciant de ton post qui me permet d'avancer!!
@++
@lex
 
M

Mytå

Guest
Bonjour le forum

Booba essaye donc ceci cela devrait resoudre ton probleme pour copier les cellules B6 a V6 vers l'autre feuille

a inserer dans la feuille 1

Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
Dim valeur As Range
For Each valeur In Range("B6:V6")
Sheets("Feuil2").Cells([match(A6,feuil2!A6:A65536,0)] + 5, valeur.Column) = valeur.Value
Next valeur
End Sub

Mytå
 
B

Booba

Guest
OUAHHH put... ca faisait un petit bout que je galerais sur excel pour finir le projet et là, ca marche nickel,
Merci beaucoup pour l'aide que vous m'avez apporter (Myta- Pyrof).
Je vais bosser un peu de VB et peut etre que je pourrais vous aider plus tard!!
En tout cas un gros merci,
Bonne continuation
Mais votre secret c'est que vous programmez comme vous pensez et ca c'est chiant pour le novice :))
@ ++
 

Discussions similaires

Statistiques des forums

Discussions
314 017
Messages
2 104 578
Membres
109 081
dernier inscrit
Vio21