Re : Si valeur colonne D ne commence pas par 606 ou 611 alors valeur colonne C (VBA)
Bonjour,
Essaye ce code qui pourrait faire l'affaire si j'ai bien compris
Code:
Option Explicit
Sub SGA()
Dim i As Integer
For i = 1 To 1000
If Range("D" & i).Value Like "606*" Or Range("D" & i).Value Like "611*" Then Range("D" & i).Offset(, 1).Value = "SGA"
Next i
End Sub
Désolé pas vu NE Commence pas par
autre code qui fait l'inverse
Code:
Option Explicit
Sub SGA()
Dim i As Integer
For i = 1 To Range("D65530").End(xlUp).Row
If Range("D" & i) Like "606*" Or Range("D" & i) _
Like "611*" Or Range("D" & i) = "" Then
Range("D" & i).Offset(, 1) = ""
Else
Range("D" & i).Offset(, 1) = "SGA"
End If
Next i
End Sub
Re : Si valeur colonne D ne commence pas par 606 ou 611 alors valeur colonne C (VBA)
Salut nhanvin et le forum
Utilise les balises de code (# en mode avancé)
Une autre proposition :
Code:
Sub SGA()
Dim X As Long
For X = 1 To 1000
If Left(Range("D" & X), 3) <> "606" And _
Left(Range("D" & X), 3) <> "611" And _
Range("D" & X) <> "" Then Range("D" & X).Offset(0, 1) = "SGA"
Next X
End Sub
Petites critiques de ton code original :
- Pourquoi de 1 à 1000 ? S'il y a une raison précise, c'est bon, mais si c'est arbitraire, il vaut mieux demander à Excel de définir sa limite. Un code du genre :
Code:
cells(rows.count,"D").end(xlup).row
définira la dernière ligne de D non vide
- Si tu veux faire une boucle pour parcourir une plage et effectuer une opération sur chaque cellule, il faut que ton traitement soit à l'intérieur de ta boucle.
- Chaque traitement doit concernée une et une seule cellule, pas toutes les cellules à la fois (du moins dans cette formulation).
Le VBA est un interprétateur de texte => la syntaxe doit être extrêmement précise, sous peine de ne pas être comprise par le compilateur.
Il faut différencier le français ou l'anglais d'un langage de code.
Par exemple, on dit :
si A est différent de X ou de Y alors
en code, ça donne
si A<>X and A<>Y alors
C'est la même chose, mais c'est un peu différent => ça t'impose d'apprendre un nouveau langae, avec ses termes et ses règles propres.
A+