Aide sur Worksheet_Change
Tsafast
Messages postés
4
Date d'inscription
Statut
Membre
Dernière intervention
-
Tsafast Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Tsafast Messages postés 4 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous,
J'aimerais bien si possible, une aide pour écrire un code qui pourrait me permettre d'automatiser ce qui suit.
je suis sur Excel 2003.
Voici le code que j'aimerais écrire, si quelqu’un peut me donner une piste de départ.
Merci à l'avance
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I4:I46")) Is Nothing Then
if I5 change then
copy range(B5:F5) 'sur la dernière ligne vide disponible du tableau (B6:F6 en jaune)
retrait à gauche sur la cellule E6 'écrire résultat de la soutraction : E5 - I5 = 200
elseif
ainsi de suite jusqu'a I46
Merci.

J'aimerais bien si possible, une aide pour écrire un code qui pourrait me permettre d'automatiser ce qui suit.
je suis sur Excel 2003.
Voici le code que j'aimerais écrire, si quelqu’un peut me donner une piste de départ.
Merci à l'avance
Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("I4:I46")) Is Nothing Then
if I5 change then
copy range(B5:F5) 'sur la dernière ligne vide disponible du tableau (B6:F6 en jaune)
retrait à gauche sur la cellule E6 'écrire résultat de la soutraction : E5 - I5 = 200
elseif
ainsi de suite jusqu'a I46
Merci.

A voir également:
- Worksheet_change sur une cellule
- Excel cellule couleur si condition texte - Guide
- Aller à la ligne dans une cellule excel - Guide
- Proteger cellule excel - Guide
- Comment colorer une cellule excel en fonction du contenu d'une autre cellule - Forum Bureautique
- Diviser une cellule excel en deux horizontalement ✓ - Forum LibreOffice / OpenOffice
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonjour,
veux-tu commencer en I5 ou en I4?
je suggère de faire une boucle sur toutes les celulles de Intersect, et de faire le boulot pour chacune de ces cellules.
quelque chose comme:
veux-tu commencer en I5 ou en I4?
je suggère de faire une boucle sur toutes les celulles de Intersect, et de faire le boulot pour chacune de ces cellules.
quelque chose comme:
Private Sub Worksheet_Change(ByVal Target As Range) Dim cellule As Range Dim intersection As Range Set intersection = Intersect(Target, Range("I4:I46")) If Not intersection Is Nothing Then For Each cellule In intersection ' faire le boulot pour la ligne de la cellule Next cellule End If End Sub
Un For Each dans une procédure Change?
Dans ce cas ce n'est pas utile.
Je n'ai fait que la copie, reste à faire le calcul...
Je vous remercie pour vos réponses, je test et vous redonne des nouvelles.
Merci!
Fernand
Merci pour ton aide qui est bien apprécié.
Premier souci:
la formule fonctionne bien mais j'aimerais si c'est possible qu'il s'en tienne qu'aux tableaux I4 à I46 car j'ai un autre tableau en dessous et il copie sur l'autre tableau. J'ai essayé ceci avant la copie mais il ne copie plus la ligne.
Range("B46"). End(xlUp). Offset(1, 0). Select.
Deuxième souci:
encore une fois si possible et ça je ne l'avais pas mentionné dans mon premier texte
Je voudrais qu'il copie la ligne seulement si la case qui est modifiée dans la rangée (I) est vide
Merci encore une fois pour ton aide.
Désolé je n'avais pas vu ta réponse...
qu'il s'en tienne qu'aux tableaux I4 à I46
Dans mon code, remplacer :
par :
Je voudrais qu'il copie la ligne seulement si la case qui est modifiée dans la rangée (I) est vide
Remplacer :
Par :
Soit :
Aucun problème, je te remercie pour ta réponse, je test et te redonne des nouvelles.