Comparaison de texte en VBA

gitan1960 Messages postés 1 Statut Membre -  
via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   -
bonjour,

ma question est la suivante:
ligne 2 : dans ma cellule "aj2" j'ai des textes ex : safety ou no safety
ligne 2 : dans ma cellule "ak2" j'ai des code ex:01 , 02 , ou 03 etc...

je desirerais que dans la colonne AK ces codes changent
par exemple "01" devient "toto" ou "02" devient "tata"

en sachant qui doit être relatif avec les textes colones AJ
EXEMPLE : si je trouve "safety" en AJ2 et qu'il y ait "01" en AK2 alors j'insère "cool"
'' '' et qu'il y ait "02 en ak2 alors j'insère "cool1"
etc...
mais si je trouve "not safety en aj2 et qu'il y ait "01 en ak2 alors j'insére "pas cool"
'' '' et qu'il y ait "02 en ak2 alors j'insère "pas cool1"

etc...
je ne trouve pas l'argumentation sous en VBA

merci de votre retour

2 réponses

  1. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Sub modif()
    For x = 2 to 50  'pour examiner les lignes 2 à 50, à adapter
    If range("AJ" & x)="safety" then
    If  range("AK" & x)="01" then range("AK" & x)="cool" 
    if range("AK" & x)="02" then range("AK" & x)="cool1"
    end if
    If range("AJ" & x)="no safety" then
    If  range("AK" & x)="01" then range("AK" & x)="pas cool" 
    if range("AK" & x)="02" then range("AK" & x)="pas cool1"
    end if
    next x
    end sub
    

    1
    1. gitan1960
       
      bonjour

      merci de votre réponse et surtout de votre réactivité...
      est-ce qu'il y aurait la possibilité d'adapter cette argumention for ... next en DO .... LOOP

      car je connaitrais pas les n° de lignes a tester ce fichier sera extrait d'un outil et le nombre de ligne sera aléatoire.

      merci encore
      0
    2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
       
      Bonjour

      Pour boucler jusqu'à la dernière ligne remplie en colonne AJ , remplacer la ligne For par celles ci

      DLig As Long
      DLig = Range("AJ1").End(xlDown).Row ' n° de la derniere ligne remplie
      For x = 1 to Dlig

      Cdlmnt
      0
    3. gitan1960
       
      merci beaucoup
      c'est super :) :) ca marche tres bien

      bonne continuation dans vos projets !!!
      0
    4. gitan1960
       
      Bonjour,

      sur mon fichier excel en colonne 7 j'ai plusieur itérations de ligne avec des valeurs
      par exemple ligne 7 de la colonne 7 j'ai la valeur 1.2
      ligne 8 toujours colonne 7 j'ai la valeur 3.16 etc ... etc ...
      mon but est de garder qua la dernière valeur qui est toujours la plus haute

      ex . congrès
      col 7
      lig7 1.2
      lig8 3.16
      lig9 5.6
      lig10 9.3
      je ne voudrais garder que la ligne 10 avec la valeur 9.3 et supprime les autres


      merci beaucoup de votre retour
      0
  2. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonjour

    Pour effacer depuis une certaine ligne jusqu'à l'avant-dernière :
    Sub effacer()
    dep = 7'ligne de départ à modifier selon le fichier
    Dim DLig As Long
    DLig = Range("A" & dep).End(xlDown).Row ' n° de la derniere ligne remplie
    Rows(dep & ":" & DLig - 1).Delete
    End Sub
    


    Cdlmnt
    0