Traduction ligne de code

  • Initiateur de la discussion Initiateur de la discussion alain62
  • 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 !

alain62

XLDnaute Nouveau
Bonsoir à tous,

Je souhaiterai dans un 1er temps pouvoir comprendre ceci :

If Target.Column = 11 And Target(1) = "Santé" Then

et plus particulièrement la partie en rouge.


Merci beaucoup
 
Re : Traduction ligne de code

Re,

Ben potentiellement, sur le modèle inital que je t'ai proposé, il va falloir multiplier les booléens et les tests pour chaque cas, mais ça c'est bon si tu as 3, peut-être 4 cas
Sinon, il va falloir essayer de mutualiser tout ça dans un "moteur" un peu plus élaboré
Tu as combien de cas ?
 
Re : Traduction ligne de code

salut

avec une macro simplifiée* (je n'ai plus les Bool 😉) mais comme le prévoit tototiti2008😀, la multiplicité des cas surtout avec des onglets de structures différentes va compliquer fortement la programmation et tu auras intérêt à refondre ton projet.

*ajout à l'exemple de copie globale un exemple de copie par cellule
 

Pièces jointes

Re : Traduction ligne de code

Re tototiti2008 ,

J'aurai 4 cas.

Santé, Famille, Maison, Voiture

Peux-tu me confirmer que :

donc pas plus de 4 cas par onglet? parce qu'après rien ne m'empêche de faire la même chose dans chaque nouvel onglet dans lesquels je transfère les premières données? et ainsi de suite...

Mercide ton aide "Si... "
 
Re : Traduction ligne de code

Bonjour Alain, Bonjour Si..., 🙂

Oui, c'est une procédure évènementielle de la feuille, il faudra la répercuter dans le code de chaque feuille concernée, donc 4 cas par feuille pas de soucis
Tu sauras adapter pour les autres cas ?
 
Re : Traduction ligne de code

Re,

Mais pour l'architecture des 4 cas je prends modèle sur?

le premier cas traité 😀

Bon une piste alors

Code:
Private Sub Worksheet_Change(ByVal Target As Range)
Dim Sante as boolean, Carbu as boolean
Sante = false
Carbu = false
    if target.count>1 then exit sub
'Tests Santé
    If Target.Column = 11 And Target = "Santé" Then
         if target.offset(0,4) = "Dr" then Sante = true
    elseif Target.Column = 15 And Target = "Dr" Then
         if target.offset(0,-4) = "Santé" then Sante = true
    end if
'Tests Carburant
    If Target.Column = 11 And Target = "Carburant" Then
         if target.offset(0,-1) = 5008 then Carbu = true
    elseif Target.Column = 10 And Target = 5008 Then
         if target.offset(0,1) = "Carburant" then carbu = true
    end if
'Ecriture    
    if Sante then
         x = Sheets("Santé").Range("B" & Rows.Count).End(xlUp).Row + 1
         Worksheets("Opérations").Range("B" & Target.Row & ":G"   & Target.Row).Copy Destination:=Worksheets("Santé").Range("B" &   x)
         Sheets("Santé").Range("D" & x).ClearContents
         Sheets("Santé").Range("E" & x).ClearContents
    End If
    if Carbu then
         x = Sheets("Peugeot 5008").Range("B" & Rows.Count).End(xlUp).Row + 1
         Worksheets("Opérations").Range("B" & Target.Row & ":G"   & Target.Row).Copy Destination:=Worksheets("Peugeot 5008").Range("B" &   x)
         Sheets("Peugeot 5008").Range("D" & x).ClearContents
         Sheets("Peugeot 5008").Range("E" & x).ClearContents
    End If
 End Sub
 
- 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
14
Affichages
423
Réponses
1
Affichages
443
  • Question Question
Microsoft 365 Problème de date
Réponses
5
Affichages
319
Retour