XL 2013 Comparer valeur d'une cellule dans un tableau avec la boucle For each next

adjovi7

XLDnaute Junior
Bonjour,

j'aurais besoin de votre aide pour mettre en oeuvre ma boucle For each next dans ma macro pour comparer la valeur d'une cellule par rapport aux valeurs de cellules dans une plage déterminée.

merci pour votre aide


Sub decaler()
'désactivé les alertes
Application.DisplayAlerts = False
'forcer le calcul
Application.Volatile
'mise a jour de l'écran
Application.ScreenUpdating = False

'variable objet
Dim Wsk_Trame As Worksheet
Dim Plage, celle As Range
Dim Var1 As Range

'instancier l'objet ici c'est la feuille1
Set Wsk_Trame = Worksheets("TRAME")


With Wsk_Trame

Set Plage = .Range("AO48:BI48") 'plage de travail sur la feuil1
Var1 = Range("AN35") ' variable a comparer dans la plage de travail
For Each celle In Plage 'boucle For
'''vérifier si n° de semaine existe dans le tableau de graph
If celle.Value = Var1 Then Exit For
MsgBox Var1 & " " & "existe dans le tableau pour le graph"
Next celle
Set Plage = Nothing
Exit Sub

.Range("BJ48").Select 'cellule active du tableau

'reporter les valeurs pour la réalisation du dernier graph
.Range("BJ48").Value = .Range("AN35").Value
.Range("BJ49").Value = .Range("AR39").Value
.Range("BJ50").Value = .Range("AR40").Value
.Range("BJ51").Value = .Range("AR41").Value
.Range("BJ52").Value = .Range("AR42").Value


'Supprimer les valeurs de la première colonne du tableau
.Range("AO48").ClearContents
.Range("AO49").ClearContents
.Range("AO50").ClearContents
.Range("AO51").ClearContents
.Range("AO52").ClearContents

'Macro permettrant de décaler les valeurs
.Range("AP48:BJ52").Select
Selection.Copy
.Range("AO48").Select
ActiveSheet.PasteSpecial Format:=3, Link:=1, DisplayAsIcon:=False, _
IconFileName:=False
.Range("BJ48:BJ52").Select
Selection.ClearContents
.Range("AN35").Select
End With

Set Wsk_Trame = Nothing

Application.ScreenUpdating = True
Application.DisplayAlerts = True


End Sub


Cordialement
Adjovi
 

adjovi7

XLDnaute Junior
Re : Comparer valeur d'une cellule dans un tableau avec la boucle For each next

Bonjour,
Ci-joint le fichier d'exemple
je m'explique de nouveau la macro doit s'arrêter si N° de semaine identique trouvé dans le tableau.
Message d'erreur au niveau de la boucle.
 

Pièces jointes

  • Copie de Copie de Exemple.xlsm
    69 KB · Affichages: 49
  • Copie de Copie de Exemple.xlsm
    69 KB · Affichages: 51
Dernière édition:

thebenoit59

XLDnaute Accro
Re : Comparer valeur d'une cellule dans un tableau avec la boucle For each next

Je te propose d'utiliser le code ainsi (ne remplacer que la partie nécessaire)

Code:
'variable objet
    Dim Wsk_Trame As Worksheet
    Dim Plage, c, d As Object
    Dim Var1 As Integer
    
'instancier l'objet ici c'est la feuille1
    Set Wsk_Trame = Worksheets("TRAME")
     
    
    With Wsk_Trame
        Set Plage = .[ao48:bi48]  'plage de travail sur la feuil1
        Set d = CreateObject("scripting.dictionary")
        For Each c In Plage: d(c.Value) = "": Next c
        Var1 = .[an35].Value ' variable a comparer dans la plage de travail
        If d.exists(Var1) Then MsgBox Var1 & " " & "existe dans le tableau pour le graph"
'''vérifier si n° de semaine existe dans le tableau de graph
    Exit Sub
 

adjovi7

XLDnaute Junior
Re : Comparer valeur d'une cellule dans un tableau avec la boucle For each next

Bonjour,
J'ai toujours un souci avec ma boucle For

Merci pour aide qui me permettra de comprendre le souci
Cordialement,
Adjovi
 

Pièces jointes

  • Copie de Copie de Exemple.xlsm
    71.8 KB · Affichages: 49
  • Copie de Copie de Exemple.xlsm
    71.8 KB · Affichages: 48
Dernière édition:

adjovi7

XLDnaute Junior
Re : Comparer valeur d'une cellule dans un tableau avec la boucle For each next

Bonjour,
C'est cette ligne qui bloque
For Each c In Plage: d(c.Value) = "": Next c
J'ai pas de message d'erreur mais la macro ne fonctionne pas.

Cordialement,
Adjovi
 

adjovi7

XLDnaute Junior
Re : Comparer valeur d'une cellule dans un tableau avec la boucle For each next

rebonjour
Si je remplace la valeur en AN35 par 17 j'obtiens bien la Msgbox mais dans le cas ou ça n'existe pas la macro doit copier les valeurs de AR39 a AR42 et coller dans le tableau en BJ48.

Cordialement
 

Discussions similaires

Statistiques des forums

Discussions
312 198
Messages
2 086 153
Membres
103 137
dernier inscrit
Billly