(macro) insertion commentaire si donnée presente dans une colonne.

ordaz75

XLDnaute Nouveau
Bonjour,

Je sollicite votre aide car je suis "bloqué" sur mon fichier... Je m'explique...

J'aimerais insérer dans la macro existante de mon fichier un code qui permet cela :

Si dans l'onglet PORTEFEUILLE LIVRABLE figure un châssis (colonne 0) existant dans l'onglet DS12 (colonne A) alors dans l'onglet portefeuille livrable (colonne AB) insérer la mention "DS12" à la ligne concerné.

Le code est à insérer à la suite de ma macro qui est liée au bouton "mise a jour tableau" dans l'onglet portefeuille livrable.

MERCI d'avance....

[fichier ci joint]
 

Pièces jointes

  • V1.zip
    176.7 KB · Affichages: 16
  • V1.zip
    176.7 KB · Affichages: 19
  • V1.zip
    176.7 KB · Affichages: 22

Papou-net

XLDnaute Barbatruc
Re : (macro) insertion commentaire si donnée presente dans une colonne.

Bonsoir ordaz75,

Pas sûr d'avoir bien compris le sens de ta question, mais je te propose de tester la modification suivante:

Code:
Sub MAJ()
Dim i As Integer
Dim valeur_recherchee As String
'si la valeur recherchée n'est pas trouvée => plantage
'supprime plantage et passe a l'instruction suivante
On Error Resume Next
With Sheets(1)
'Suppression de ligne dans "PORTEFEUILLE LIVRABLE" si "N° CAR" n'existe pas dans "Fichier source de MAJ"
For i = .Range("N" & Rows.Count).End(xlUp).Row To 2 Step -1
If Application.CountIf(Sheets(2).Columns("L"), .Range("N" & i).Value) = 0 Then
  .Range("N" & i).EntireRow.Delete
  Else
  .Range("AB" & i) = "DS12"
End If
Next i
End With
For i = 2 To Sheets(2).Range("L65536").End(xlUp).Row
valeur_recherchee = Sheets(2).Range("L" & i)
With Sheets(1)
ligne = .Columns("N").Find(what:=valeur_recherchee, LookIn:=xlValues, lookAt:=xlWhole).Row
If ligne <> 0 Then
.Range("O" & ligne) = Sheets(2).Range("K" & i)
.Range("Q" & ligne) = Sheets(2).Range("N" & i)
.Range("R" & ligne) = Sheets(2).Range("O" & i)
.Range("H" & ligne) = Sheets(2).Range("AK" & i)
ligne = 0
End If
End With
Next
Cordialement.
 

ordaz75

XLDnaute Nouveau
Re : (macro) insertion commentaire si donnée presente dans une colonne.

Bonjour,

Merci de ta réponse.

Pour faire simple à la suite de mon code :

'---------------------------------------------
Sub MAJ()
Dim i As Integer
Dim valeur_recherchee As String
'si la valeur recherchée n'est pas trouvée => plantage
'supprime plantage et passe a l'instruction suivante
On Error Resume Next
With Sheets(1)
'Suppression de ligne dans "PORTEFEUILLE LIVRABLE" si "N° CAR" n'existe pas dans "Fichier source de MAJ"
For i = .Range("N" & Rows.Count).End(xlUp).Row To 2 Step -1
If Application.CountIf(Sheets(2).Columns("L"), .Range("N" & i).Value) = 0 Then
.Range("N" & i).EntireRow.Delete
End If
Next i
End With
For i = 2 To Sheets(2).Range("L65536").End(xlUp).Row
valeur_recherchee = Sheets(2).Range("L" & i)
With Sheets(1)
ligne = .Columns("N").Find(what:=valeur_recherchee, LookIn:=xlValues, lookAt:=xlWhole).Row
If ligne <> 0 Then
.Range("O" & ligne) = Sheets(2).Range("K" & i)
.Range("Q" & ligne) = Sheets(2).Range("N" & i)
.Range("R" & ligne) = Sheets(2).Range("O" & i)
.Range("H" & ligne) = Sheets(2).Range("AK" & i)
ligne = 0
End If
End With
Next

Call test '<<<<<<<<<<<<<<<<<<<<============================ =
On Error GoTo 0
End Sub
'---------------------------------------------

'---------------------------------------------
Sub test()
Dim Rg As Range, C As Range

Application.ScreenUpdating = False
Application.EnableEvents = False
With Worksheets("PORTEFEUILLE LIVRABLE")
Set Rg = .Range("O2:O" & .Range("O" & .Cells.Rows.Count).End(xlUp).Row)
End With
For Each C In Rg
C.Value = Right(Trim(C.Value), 8)
Next
Application.EnableEvents = True
Application.ScreenUpdating = True
End Sub
'---------------------------------------------



J'aimerais insérer EN PLUS un code qui me permet de réaliser la condition suivante :

Si dans l'onglet PORTEFEUILLE LIVRABLE figure un châssis (colonne 0) existant dans l'onglet DS12 (colonne A) alors dans l'onglet portefeuille livrable (colonne AB) insérer la mention "DS12" pour la ligne concerné.
 

ordaz75

XLDnaute Nouveau
Re : (macro) insertion commentaire si donnée presente dans une colonne.

J'ai un message d'erreur qui apparait "erreur de compilation nom ambigu détecté : MAJ"

Peux tu m’insérer ton code sur mon fichier si cela ne te dérange pas ?

Merci d'avance
 

ordaz75

XLDnaute Nouveau
Re : (macro) insertion commentaire si donnée presente dans une colonne.

L'idée est exactement celle ci, MAIS en faisant diffèrent test je me suis aperçu que si je modifie les données dans l'onglet DS12 et que dans l'onglet PORTEFEUILLE LIVRABLE les châssis sont diffèrent et bien la mention "DS12" reste appliqué dans la cellule car précédemment le châssis dans cette même ligne était bien dans l'onglet DS12

J'ai l'impression que la colonne AB du portefeuille livrable ne s'actualise pas en fonction des données saisie et qu'une fois la mention DS12 insérée elle y reste figée
 

Papou-net

XLDnaute Barbatruc
Re : (macro) insertion commentaire si donnée presente dans une colonne.

Peut-être comme ceci alors ?

Code:
For i = .Range("N" & Rows.Count).End(xlUp).Row To 2 Step -1
If Application.CountIf(Sheets(2).Columns("L"), .Range("N" & i).Value) = 0 Then .Range("N" & i).EntireRow.Delete
Next i
End With
For i = 2 To Sheets(2).Range("L65536").End(xlUp).Row
valeur_recherchee = Sheets(2).Range("L" & i)
With Sheets(1)
ligne = .Columns("N").Find(what:=valeur_recherchee, LookIn:=xlValues, lookAt:=xlWhole).Row
If ligne <> 0 Then
.Range("O" & ligne) = Sheets(2).Range("K" & i)
.Range("Q" & ligne) = Sheets(2).Range("N" & i)
.Range("R" & ligne) = Sheets(2).Range("O" & i)
.Range("H" & ligne) = Sheets(2).Range("AK" & i)
.Range("AB" & ligne) = "DS12"
ligne = 0
Else
.Range("AB" & ligne) = ""
End If
End With
Next
A +

Cordialement.
 

ordaz75

XLDnaute Nouveau
Re : (macro) insertion commentaire si donnée presente dans une colonne.

Cela ne fonctionne toujours pas.... lorsque j'efface les données dans l'onglet DS12 et je clique sur le bouton mise a jour tableau en porte feuille livrable. La mention DS12 y apparait tout le temps ci joint fichier

ne serait il pas plus simple que je m'oriente vers une formule ????
 

Pièces jointes

  • V1 modifie.zip
    176.9 KB · Affichages: 14

Papou-net

XLDnaute Barbatruc
Re : (macro) insertion commentaire si donnée presente dans une colonne.

RE:

La mise à jour ne se fait pas correctement lorsque tu modifies un châssis dans la feuille DS12 et c'est normal puisque la valeur de référence dans la macro du même nom se fait sur N° CAR. Je ne sais pas si l'utilisation d'une formule serait plus simple car j'avoue que la logique de ton application m'apparaît à présent quelque peu nébuleuse. Il serait peut-être bon d'obtenir une description plus globale et plus détaillée du déroulement des actions.

A +

Cordialement.
 

Discussions similaires

Statistiques des forums

Discussions
312 321
Messages
2 087 247
Membres
103 498
dernier inscrit
FAHDE