Utiliser If et chaine de caractères pour passer des lignes?

Fermé
Excel-sior - 25 juin 2013 à 14:10
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 - 25 juin 2013 à 14:50
Bonjour,

Je travail en ce moment sur une macro qui va chercher dans un tableau(1) des codes correspondant à un autre tableau(2) pour y inscrire des données à coté.

Le boulot de ma macro est simplement de m'écrire à coté de mon code ce qu'elle lit dans le tableau(1) mais là où cela bloque c'est que dans mon tableau(2), chaque code est séparé par -soit une cellule vide -soit une cellule avec du texte.

Or mes codes étant du texte (#A###) je ne peux écrire d'exclusion de texte.

Existe t'il un moyen d'écrire un If suivi d'une exclusion de toute chaine de caractères de plus de 5 (sachant qu'avec ma formule If code > len("aaaaa") then cela ne marche pas car il considère que code > 5 mais pas 5 caractères)

Si un point n'est pas clair voici le code ou je peux expliquer plus en détail certains points.

Merci d'avance pour votre aide

Sub Calcul_Click()

Chemin = ""
NomFichier = "" & ".xls"

Call OuvrirFichier(Chemin & "/" & NomFichier)
ThisWorkbook.Activate

Ligne = 19
LigneM = 1
Colonne = 3
ColonneN = 7
ColonneE = 9
LigneC = 4

Do Until Fin

Mois = ThisWorkbook.Sheets("").Cells(LigneM, Colonne)
NumCompte = Workbooks(NomFichier).Sheets("").Cells(Ligne, ColonneN)
Compte = ThisWorkbook.Sheets("").Cells(LigneC, 1)
If Compte = "" Then LigneC = LigneC + 1
If Compte Like "[A-Z]" Then LigneC = LigneC + 1 essai non fructuant

If Workbooks(NomFichier).Sheets("").Cells(16, ColonneE) = Mois Then
If NumCompte = "3000" & Compte Then
ThisWorkbook.Sheets("").Cells(LigneC, Colonne) = Workbooks(NomFichier).Sheets("").Cells(Ligne, ColonneE)
LigneC = LigneC + 1
Ligne = 19
Colonne = 2
If LigneC = "" Then Colonne = Colonne + 1
Else
Ligne = Ligne + 1
Colonne = 2
End If

End If

If Mois = "" Then Fin = True

Colonne = Colonne + 1

Loop


End Sub
A voir également:

1 réponse

pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 2 754
25 juin 2013 à 14:50
Bonjour,

Difficile de cerner ce que tu souhaites.
Je vais répondre donc à cette question :
Existe t'il un moyen d'écrire un If suivi d'une exclusion de toute chaine de caractères de plus de 5 (sachant qu'avec ma formule If code > len("aaaaa") then cela ne marche pas car il considère que code > 5 mais pas 5 caractères)

Si tu veux tester si le nombre de caractères de ton code est supérieur à 5 :

Dim monCode As String

monCode = "Blablabla"
If Len(monCode) > 5 Then MsgBox "Votre code fait : " & Len(monCode) & " caractères, donc trop long"

0