• Initiateur de la discussion Initiateur de la discussion Celeda
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Celeda

XLDnaute Barbatruc
Bonjour,

Dans Private Sub Worksheet_Change(ByVal Target As Range),
j'essaye de emplir automatiquement les cellules de la colonne L en fonction des cellules de la colonne A :
"Inscrire 1 dans la colonne L si colonne A n'est pas vide"
avec Target. et Column mais cela ne fonctionne pas.

Il faut aussi que l'on puisse changer 1 par une autre quantité : c'est en quelque sorte un pré-requis la qty 1, pour forcer l'utilisateur à entrer un chiffre ensuite, il le changera.

A l'avance je vous remercie.
 
Re : VBA-Remplir colonne

Bonjour Celeda, JNP

une autre solution :
Code:
Option Explicit
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column > 1 Or Target.Count > 1 Then Exit Sub
If Not IsEmpty(Target) And IsEmpty(Target.Offset(0, 11)) Then _
    Target.Offset(0, 11).Value = 1
End Sub

bon après midi
@+
 
Re : VBA-Remplir colonne

Bonjour les gars,

je pense que j'ai fait une bêtise 🙁 sorry,

les macros ne fonctionnent pas parce que je pense que j'ai oublié de préciser
quelque chose :

dès qu'on écrit dans une cellule de la colonne A (1) , cela vient inscrire 1 dans la cellule de la même ligne de la colonne L (12)

je suis mal exprimée, désolée.

Merci
 
Re : VBA-Remplir colonne

Re,

Euh oui... mais encore.... 🙂 c'est ce que font nos codes font... pour le mien, si une valeur est renseignée en colonne A et si la cellule de la colonne L sur cette même ligne est vide alors "1" est envoyé vers cette même cellule... je pense que quelque chose doit m'échapper....
@+
 
Re : VBA-Remplir colonne

Bonjour,

euf c'est p'être pas toi mais moi lol!!
je ne sais pas ce qui fait qu'elle ne fonctionne pas.
J'ai placé les codes à la suite d''autres tel que

Code:
'ne pas oublier de modifier le % usd ici 1.40-  23/08/2010

Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Column = 10 Or Target.Column = 11 Or Target.Column = 12 Then
Select Case Target.Column
  Case 10
    If Cells(Target.Row, 12) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 10) * Cells(Target.Row, 12)
  Case 11
    If Cells(Target.Row, 12) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 11) * Cells(Target.Row, 12) / 1.4
  Case 12
    If Cells(Target.Row, 10) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 10) * Cells(Target.Row, 12)
    If Cells(Target.Row, 11) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 11) * Cells(Target.Row, 12) / 1.4
End Select
End If
'End Sub
'========================================
'Colorie la ligne si o ou p remplie
'Evènement "_Change" de la feuille.
'Se déclanche à chaque changement de cellule (lorsqu'on valide la saisie).
'"Target" représente la cellule (ou zone) qui vient de changer.

'Private Sub Worksheet_Change(ByVal Target As Range)

    
    'Vérifier si la cellule qui vient de changer est dans la colonne O ou P.
    'Sinon, quitter la macro.
    If Application.Intersect(Target, Range("O:P")) Is Nothing Then Exit Sub
        
        
    'Si Target est dans la colonne O est que la valeur saisie est une date
    If Not Application.Intersect(Target, Range("O:O")) Is Nothing And IsDate(Target.Value) Then
        Target.EntireRow.Interior.ColorIndex = 38
        
    'sinon, on effectue le test sur la colonne P
    ElseIf Not Application.Intersect(Target, Range("P:P")) Is Nothing And IsDate(Target.Value) Then
        Target.EntireRow.Interior.ColorIndex = 15
    End If
    

'=========================================
' "Inscrire 1 dans la colonne QTY dès customer dans A"
  
   If Target.Column > 1 Or Target.Count > 1 Then Exit Sub
   If Not IsEmpty(Target) And IsEmpty(Target.Offset(0, 11)) Then _
    Target.Offset(0, 11).Value = 1

    'If Target.Column <> 1 Then Exit Sub
    'Range("L" & Target.Row) = 1



End Sub
c'est bizarre...je suis désolée pierrot pour le travail en plus🙂 Merci
 
Re : VBA-Remplir colonne

Re,

j'ai modifié un peu l'ordre, en effet tu avais une clause en amont qui disait, si la cellule modifiée n'est pas dans la colonne O ou P sortie de la procédure, donc si colonne A le code n'était pas exécuté....

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
If Target.Column = 10 Or Target.Column = 11 Or Target.Column = 12 Then
Select Case Target.Column
  Case 10
    If Cells(Target.Row, 12) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 10) * Cells(Target.Row, 12)
  Case 11
    If Cells(Target.Row, 12) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 11) * Cells(Target.Row, 12) / 1.4
  Case 12
    If Cells(Target.Row, 10) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 10) * Cells(Target.Row, 12)
    If Cells(Target.Row, 11) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 11) * Cells(Target.Row, 12) / 1.4
End Select
End If

'=========================================
' "Inscrire 1 dans la colonne QTY dès customer dans A"
  
    If Target.Column = 1 Then
        If Not IsEmpty(Target) And IsEmpty(Target.Offset(0, 11)) Then _
            Target.Offset(0, 11).Value = 1
    End If
    'If Target.Column <> 1 Then Exit Sub
    'Range("L" & Target.Row) = 1

'End Sub
'========================================
'Colorie la ligne si o ou p remplie
'Evènement "_Change" de la feuille.
'Se déclanche à chaque changement de cellule (lorsqu'on valide la saisie).
'"Target" représente la cellule (ou zone) qui vient de changer.

'Private Sub Worksheet_Change(ByVal Target As Range)

            
    'Vérifier si la cellule qui vient de changer est dans la colonne O ou P.
    'Sinon, quitter la macro.
    If Application.Intersect(Target, Range("O:P")) Is Nothing Then Exit Sub
        
        
    'Si Target est dans la colonne O est que la valeur saisie est une date
    If Not Application.Intersect(Target, Range("O:O")) Is Nothing And IsDate(Target.Value) Then
        Target.EntireRow.Interior.ColorIndex = 38
        
    'sinon, on effectue le test sur la colonne P
    ElseIf Not Application.Intersect(Target, Range("P:P")) Is Nothing And IsDate(Target.Value) Then
        Target.EntireRow.Interior.ColorIndex = 15
    End If    

End Sub

Re-teste peut être la totalité sur ton fichier ....

bonne fin d'après midi
@+
 
Re : VBA-Remplir colonne

Re 🙂,
Quitte à remettre un peu d'ordre 🙄
Code:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Count > 1 Then Exit Sub
Select Case Target.Column
    Case 1
       If Not IsEmpty(Target) And IsEmpty(Target.Offset(0, 11)) Then _
            Target.Offset(0, 11).Value = 1
    Case 10
        If Cells(Target.Row, 12) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 10) * Cells(Target.Row, 12)
    Case 11
        If Cells(Target.Row, 12) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 11) * Cells(Target.Row, 12) / 1.4
    Case 12
        If Cells(Target.Row, 10) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 10) * Cells(Target.Row, 12)
        If Cells(Target.Row, 11) <> "" Then Cells(Target.Row, 13) = Cells(Target.Row, 11) * Cells(Target.Row, 12) / 1.4
    Case 15
        If IsDate(Target.Value) Then Target.EntireRow.Interior.ColorIndex = 38
    Case 16
        If IsDate(Target.Value) Then Target.EntireRow.Interior.ColorIndex = 15
End Select
End Sub
Bises aussi 😉.
A + 😎
 
Re : VBA-Remplir colonne

Bonsoir,

hé hé, merci pour le ménage pourtant j'ai joué dans une super pièce cet été dans laquelle je faisais une nettoyeuse du chemin de fer un peu olé olé mais très efficace !!

tant pis je viens de tomber dans la séance émotion!!
et pourtant je voulais rester soft

je ne saurais jamais vous exprimer à tous et toutes combien je vous apprécie.
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD

Discussions similaires

Réponses
7
Affichages
829
Réponses
1
Affichages
828
Réponses
12
Affichages
1 K
G
  • Question Question
Réponses
8
Affichages
916
G
S
Réponses
2
Affichages
1 K
P
Réponses
4
Affichages
940
P
Retour