Menu

Code qui n'exécute pas [Résolu]

muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 11:25 - Dernière réponse : muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention
- 6 déc. 2017 à 10:55
Bonjour,
j'ai écrit un code et j'ai pas de messages d'erreur, quand je compile pas à pas il marche bien. Mais une fois que je le jance il ne fait rien. mon code c'est le suivant:


ch="CO"
Wbk.Activate
TabOrigSupChoice = Range("BB2:BB30000")
Table = Range("BB2:BB30000")
'*****************************each Original Supplier is reported to one name*************************************
For cmpt1 = LBound(TabOrigSupChoice, 1) To UBound(TabOrigSupChoice, 1)
For cmpt2 = LBound(Table, 1) + cmpt1 To UBound(Table, 1)
If Not TabOrigSupChoice(cmpt1, 1) Like "*" & ch & "*" Then
If (Table(cmpt2, 1) <> "") And (TabOrigSupChoice(cmpt1, 1) <> "") Then
If TabOrigSupChoice(cmpt1, 1) Like "*" & Table(cmpt2, 1) & "*" Or _
Table(cmpt2, 1) Like "*" & TabOrigSupChoice(cmpt1, 1) & "*" Then
Wbk.Activate
Cells(cmpt1 + 1, 54).Select
Selection.value = Table(cmpt2, 1)
Exit For
End If
Else
Exit For
End If
Else
Exit For
End If
Next
Next


pouvez-vous m'aider svp?
merci d'avance

Afficher la suite 

Votre réponse

14 réponses

Meilleure réponse
thev 1722 Messages postés lundi 7 avril 2008Date d'inscription 1 juillet 2018 Dernière intervention - Modifié par thev le 4/12/2017 à 12:01
1
Merci
Bonjour,

D'après le code, il s'agit plutôt de tableaux à 2 dimensions (ligne,colonne) que d'objets Range. Dans ce cas, la bonne définition est :

TabOrigSupChoice = Range("BB2:BB30000").Value
Table = Range("BB2:BB30000") .Value

Mieux vaut préciser la propriété Value (même si elle est en général prise par défaut) pour être sûr du résultat.
 

Merci thev 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22572 internautes ce mois-ci

muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 14:15
Bonjour thev,
c'est exactement des tableaux. Ok c'est noté
Commenter la réponse de thev
Meilleure réponse
f894009 13267 Messages postés dimanche 25 novembre 2007Date d'inscription 18 juillet 2018 Dernière intervention - 4 déc. 2017 à 16:53
1
Merci
Bonjour,
Like
sensible à la casse?
Oui

Merci f894009 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22572 internautes ce mois-ci

muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 17:04
Aie la galère,
est ce qu'il n'y aurait pas d'autres instructions pour comparer des chaines de caractères et qui seraient pas sensibles à la casse?
peut être instr()?
jordane45 21668 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 juillet 2018 Dernière intervention > muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 17:16
muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 5 déc. 2017 à 08:11
Merci, je jette un coup d'oeil
Commenter la réponse de f894009
Meilleure réponse
f894009 13267 Messages postés dimanche 25 novembre 2007Date d'inscription 18 juillet 2018 Dernière intervention - 4 déc. 2017 à 17:24
1
Merci
Re a vous deux,

Tout simplement Ucase

Merci f894009 1

Avec quelques mots c'est encore mieux Ajouter un commentaire

CCM a aidé 22572 internautes ce mois-ci

muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 17:25
désolée mais quelle serait la syntaxe, svp?
f894009 13267 Messages postés dimanche 25 novembre 2007Date d'inscription 18 juillet 2018 Dernière intervention > muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 17:32
Re,

peut être instr()? Sensible a la case

 If UCase(TabOrigSupChoice(cmpt1, 1)) Like "*" & UCase(Table(cmpt2, 1)) & "*" Or _
                       UCase(Table(cmpt2, 1)) Like "*" & UCase(TabOrigSupChoice(cmpt1, 1)) & "*" Then
muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention > f894009 13267 Messages postés dimanche 25 novembre 2007Date d'inscription 18 juillet 2018 Dernière intervention - 5 déc. 2017 à 16:00
Merci ça marche à merveille.
svp je voudrais tester si une case de mon tableau est vide mais j'arrive pas en faisant ainsi:

if Table(cmpt2, 1) =""then
exit for
end if

ça m'affiche une erreur, comme si c'est l'adresse en fait qui est considérée comment indexer directement le contenu de la cellule?

merci beaucoup pour toute l'aide déjà apportée et la promptitude

merci d'avance
muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention > muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 6 déc. 2017 à 10:55
en fait vu que c'est un tableau d'entier il faut plutôt écrire:

if Table(cmpt2, 1) =0 then
exit for
end if

et ça marche. en tout cas chez moi.

Merci encore à vous
Commenter la réponse de f894009
jordane45 21668 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 18 juillet 2018 Dernière intervention - 4 déc. 2017 à 11:30
0
Merci
Bonjour,

1 - Il nous faut le code complet
2 - Il faut nous indiquer comment tu le lances

Au passage, pour définir des RANGE il faut utiliser l'instruction SET
par exemple :
'si TabOrigSupChoice  est défini en tant que range
' Dim TabOrigSupChoice  as Range
Set TabOrigSupChoice = Range("BB2:BB30000")


Commenter la réponse de jordane45
muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - Modifié par jordane45 le 4/12/2017 à 15:15
0
Merci
Bonjour Jordane,
je fait appel à ce module depuis un autre comme ceci:
Call OneSUP_OneDesignation.OneSUP_OneDesignation(WDte)


La première boucle fait bien ce qu'elle doit faire mais la 2ème non.

Sub OneSUP_OneDesignation(Wbk As Workbook)
    
    Dim TabOrigSup(), TabOrigSupChoice(), Table() As Variant 
    Dim cmpt1, cmpt2 As Integer
    Dim ch As String

    'Set Wbk = Workbooks.Open(Filename:=strFileToOpen)
    ch = "GE"
    Wbk.Activate
    TabOrigSup = Range("AO2:AO30000").value
    TabOrigSupChoice = Range("BB2:BB30000").value
    '************************Column "Original supplier choices" is filled******************************************
    For cmpt1 = LBound(TabOrigSupChoice, 1) To UBound(TabOrigSupChoice, 1)
        If (TabOrigSupChoice(cmpt1, 1) = "") Or (TabOrigSupChoice(cmpt1, 1) = "Other") Then
            Wbk.Activate
            Cells(cmpt1 + 1, 54).Select
            Selection.value = TabOrigSup(cmpt1, 1)
        End If
    Next
    
    Wbk.Activate
    TabOrigSupChoice = Range("BB2:BB30000").value
    Table = Range("BB2:BB30000").value
    '*****************************each Original Supplier is reported to one name*************************************
     For cmpt1 = LBound(TabOrigSupChoice, 1) To UBound(TabOrigSupChoice, 1)
        For cmpt2 = LBound(Table, 1) + cmpt1 To UBound(Table, 1)
             If Not TabOrigSupChoice(cmpt1, 1) Like "*" & ch & "*" Then
                If (Table(cmpt2, 1) <> "") And (TabOrigSupChoice(cmpt1, 1) <> "") Then
                    If TabOrigSupChoice(cmpt1, 1) Like "*" & Table(cmpt2, 1) & "*" Or _
                        Table(cmpt2, 1) Like "*" & TabOrigSupChoice(cmpt1, 1) & "*" Then
                        Wbk.Activate
                        Cells(cmpt1 + 1, 54).Select
                        Selection.value = Table(cmpt2, 1)
                        Exit For
                    End If
                Else
                    Exit For
                End If
            Else
                Exit For
            End If
        Next
    Next

End Sub
Commenter la réponse de muiigisha
muiigisha 61 Messages postés lundi 25 septembre 2017Date d'inscription 6 décembre 2017 Dernière intervention - 4 déc. 2017 à 14:48
0
Merci
Une question svp: est ce que l'instruction << ...like "*"&...&"*" >> est sensible à la casse?
Commenter la réponse de muiigisha