Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

XL 2016 Utilisation de Ubond(tablo)

Hogwarts

XLDnaute Nouveau
Bonjour,

Je vous contacte concernant l'utilisation de la méthode Ubond(tablo).

Je vous pose mon souci, j'ai un deux onglets qui possèdent deux colonnes à des endroits similaires.

Onglet1(Statut) : Colonne 1(A) et Colonne 10 (J)
Onglet2(En attente) : Colonne 1(A) et Colonne 10 (J)

Le code compare les colonnes J de chaque onglet avec la présence ou non d'un "O" ou d'un "F".

Mon souci est que j'aimerais adapter le code au Colonne 2(B) pour chaque feuille à la place de la Colonne 1(A)

Merci d'avance pour votre aide.
 

Pièces jointes

  • identifiant-statut.xlsm
    17.7 KB · Affichages: 9

sylvanu

XLDnaute Barbatruc
Supporter XLD
Bonjour Hogwarts,
tablo contient la colonne A en indice 1, la colonne B en indice 2 ....
Donc pour comparer les colonnes B, il suffit, je pense, de changer les indices colonnes :
VB:
If "XXX_" & tablo(i, 2) Like tabloE(iE, 2) And tabloE(i, 10) = "F" Then
En supposant que la colonne J ne change pas.
 

cp4

XLDnaute Barbatruc
Bonjour Hogwarts,

Si J'ai vraiment compris ta question, il faudrait qu'il y ait des données dans les colonnes B.
Ensuite pourquoi tes boucles commencent à 3 au lieu de 1. En effet, tu boucles sur les éléments d'un array pas sur les lignes de la feuille.
VB:
Option Explicit

Dim tablo, tabloE, fs As Worksheet, fea As Worksheet
Dim i&, iE&

Sub MettreAjour()
   
    Set fs = Sheets("Statut")
    Set fea = Sheets("En attente")
 
    tablo = fs.Range("A1:J" & fs.Range("A" & Rows.Count).End(xlUp).Row)
   
    tabloE = fea.Range("A1").CurrentRegion
 
    For i = 3 To UBound(tablo, 1) '**Pourquoi i comme à 1 **
        If tablo(i, 10) = "O" Then
           
            For iE = 3 To UBound(tabloE, 1) '** Pourquoi iE comme à 1 **
                If "XXX_" & tablo(i, 1) Like tabloE(iE, 1) And tabloE(i, 10) = "F" Then
                    tablo(i, 10) = "F"
                End If
            Next iE
        End If
    Next
    Range("A1").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
   
End Sub

edit: Oups! pas vu. Bonjour Sylvanu
 
Dernière édition:

Hogwarts

XLDnaute Nouveau
Bonjour,
Et merci pour votre réponse à tous les deux.
J'ai surement manqué de précision.
Voici ci-joint le cas de figure dans lequel j'aimerais que mon fichier fonctionne, j'ai effectué quelques transformations avec la ligne de Sylvanu et en remplaçant la colonne "A" par "B" à chaque fois. Cela me retourne cependant une erreur à cette ligne :
VB:
 If tablo(i, 10) = "O" Then
 

Pièces jointes

  • identifiant-statut.xlsm
    19.1 KB · Affichages: 6

Hogwarts

XLDnaute Nouveau
Bonjour Cp4, pour répondre à ta question concernant la boucle à partir de la ligne 3, c'est pour ne pas prendre en compte les lignes au dessus de la ligne 3. Du coup je pensais faire commencer mon Array à la ligne 3. Je ne sais pas si j'ai eu raison de procéder ainsi
 

Discussions similaires

Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…