MAJ VBA cellules

pierrot63270

XLDnaute Nouveau
Bonjour le Forum,

j'ai réalisé un fichier (ci-joint) avec 2 onglets qui comportent chacun un Num_dossier et un nom de bénéficiare. A partir de l'onglet Recap, je souhaite que le nom bénéficiare apparaisse dans l'onglet CSF quand je rentre le num_Dossier. Jusque-là ça va, avec le code VBA que j'ai écris.

Le souci est que lorsque j'efface Num_dossier dans CSF, le nom beneficiare ne s'efface pas, et que si j'efface Num_dossier et beneficiare sur l'onglet CSF, j'ai une belle erreur.

Je voudrais donc éviter l'erreur, et que le nom beneficiaire s'efface quand j'efface le num_dossier...

Merci d'aavnce pour votre aide.

Pierrot63270
 

Pièces jointes

  • Copie de Suivi dossiers.xlsm
    26.4 KB · Affichages: 28

pierrot63270

XLDnaute Nouveau
Re : MAJ VBA cellules

Merci beaucoup camarchepas !

C'est opérationnel désormais. En revanche, ça bugge quand je sélectionne le num_dossier et beneficiaire et que je veux effacer "utilisation incorrecte de Null".

Si tu as une solution je suis preneur. je connais les oiseaux qui vont utiliser le tableur... et râler

Merci de ton aide.

Bonne fin de journée.

Pierrot63270
 

camarchepas

XLDnaute Barbatruc
Re : MAJ VBA cellules

Voici le code de l'onglet CSF à modifier :

ajout de Target.Cells.Count = 1 à 2 endroits

Code:
Dim Mem As String
Private Sub WorkSheet_Change(ByVal Target As Range)
Dim Trouve As Range
Dim X As Long, Y As Long
Dim Z As String
Application.ScreenUpdating = False
 
 If Not Intersect(Target, Range("A1:A" & Rows.Count)) Is Nothing And Target.Cells.Count = 1 Then
    X = Target.Row
    Y = Target.Column
    Z = Target.Value
    If Z <> "" Then
     Set Trouve = Sheets("Recap").Range("A:A").Find(Target.Text, lookat:=xlWhole)
     If Not Trouve Is Nothing Then Sheets("CSF").Cells(X, Y + 1).Value = Trouve.Offset(0, 1).Value
   Else
     If Mem <> "" Then Sheets("CSF").Cells(X, Y + 1).Value = ""
  End If
   
 End If

Sheets("CSF").Select
Application.ScreenUpdating = True
End Sub

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
 If Target.Cells.Count = 1 Then Mem = Target.Text
End Sub
 

Discussions similaires

Statistiques des forums

Discussions
311 725
Messages
2 081 944
Membres
101 849
dernier inscrit
florentMIG