Comparaison de texte en VBA

Fermé
gitan1960 Messages postés 1 Date d'inscription vendredi 24 octobre 2014 Statut Membre Dernière intervention 24 octobre 2014 - 24 oct. 2014 à 14:34
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 - 30 oct. 2014 à 14:01
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

via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
24 oct. 2014 à 18:46
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
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
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
27 oct. 2014 à 14:02
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
merci beaucoup
c'est super :) :) ca marche tres bien

bonne continuation dans vos projets !!!
0
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
via55 Messages postés 14405 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 25 avril 2024 2 703
30 oct. 2014 à 14:01
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