Fonction tablo vba
Résolu
Francois
-
Francois -
Francois -
A voir également:
- Fonction tablo vba
- Fonction si et - Guide
- Fonction miroir - Guide
- Fonction moyenne excel - Guide
- Excel compter cellule couleur sans vba - Guide
- Fonction somme excel - Guide
3 réponses
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 583
bonjour,
dommage, tu n'expliques ni ce que tu as essayé, ni l'erreur obtenue.
je n'ai pas testé, mais je suggère de remplacer C par J en ligne 19,
de remplacer tablo(i, 3) par tablo(i, 10),
et, dans le resize, remplacer 3 par UBound(tablo, 2).
dommage, tu n'expliques ni ce que tu as essayé, ni l'erreur obtenue.
je n'ai pas testé, mais je suggère de remplacer C par J en ligne 19,
de remplacer tablo(i, 3) par tablo(i, 10),
et, dans le resize, remplacer 3 par UBound(tablo, 2).
Oui exactement.
C'est à dire que si dans la colonne "Etat" de la feuille Statut, il y a un "O" et un "F" dans la même colonne mais de l'autre feuille, alors le "O" se transforme en "F".
S'il y a un "O" de chaque coté, rien ne se passe
Et s'il y a un "F" de chaque coté rien ne se passe.
C'est à dire que si dans la colonne "Etat" de la feuille Statut, il y a un "O" et un "F" dans la même colonne mais de l'autre feuille, alors le "O" se transforme en "F".
S'il y a un "O" de chaque coté, rien ne se passe
Et s'il y a un "F" de chaque coté rien ne se passe.
peux-tu montrer ton code adapté?
merci de tenir compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
merci de tenir compte de ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Le code source qui fonctionnait selon ce modèle (j'espère que c'est ceci que tu entendais par code adapté).
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:C" & fs.Range("A" & Rows.Count).End(xlUp).Row) tabloE = fea.Range("A1").CurrentRegion For i = 3 To UBound(tablo, 1) If tablo(i, 3) = "O" Then For iE = 3 To UBound(tabloE, 1) If "XXX_" & tablo(i, 1) Like tabloE(iE, 1) And tabloE(i, 10) = "F" Then tablo(i, 3) = "F" End If Next iE End If Next Range("A1").Resize(UBound(tablo, 1), 3) = tablo End Sub
Pardon j'ai mal compris, le voici :
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) If tablo(i, 3) = "O" Then For iE = 3 To UBound(tabloE, 1) If "NCR_" & 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), 2) = tablo End Sub
Dis moi si ça te semble bon ?
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) If tablo(i, 10) = "O" Then For iE = 3 To UBound(tabloE, 1) If "NCR_" & 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, 2)) = tablo End Sub
Bonjour Yg_be,
Je réactive ce post concernant une petite demande, sur le même exemple que précédemment, je voulais utiliser la fonction Ubound(tablo) dans le cas ou mes colonnes ne seraient pas A et J mais B et J comme dans l'exemple :
"Onglet1(Statut) : Colonne 2(B) et Colonne 10 (J)
Onglet2(En attente) : Colonne 2(B) et Colonne 10 (J)"
Ma question est la suivante, j'ai essayé d'adapter le code pour le transformer avec l'exemple ci-dessus, mais même si celui-ci ne me retourne pas d'erreur, je n'ai aucun résultat quand je lance la macro.
Aurais-tu une idée ?
Merci d'avance.
Code :
Je réactive ce post concernant une petite demande, sur le même exemple que précédemment, je voulais utiliser la fonction Ubound(tablo) dans le cas ou mes colonnes ne seraient pas A et J mais B et J comme dans l'exemple :
"Onglet1(Statut) : Colonne 2(B) et Colonne 10 (J)
Onglet2(En attente) : Colonne 2(B) et Colonne 10 (J)"
Ma question est la suivante, j'ai essayé d'adapter le code pour le transformer avec l'exemple ci-dessus, mais même si celui-ci ne me retourne pas d'erreur, je n'ai aucun résultat quand je lance la macro.
Aurais-tu une idée ?
Merci d'avance.
Code :
Set fs = Sheets("Statut") Set fea = Sheets("En attente") tablo = fs.Range("B1:J" & fs.Range("A" & Rows.Count).End(xlUp).Row) tabloE = fea.Range("B1").CurrentRegion For i = 3 To UBound(tablo, 1) If tablo(i, 10) = "O" Then For iE = 3 To UBound(tabloE, 1) If "NCR_" & 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("B1").Resize(UBound(tablo, 1), UBound(tablo, 2)) = tablo
Je suis désolé pour mon approximation. Dans ce que j'ai essayé il y a ceci :
"remplacer C par J en ligne 19, " & "remplacer tablo(i, 3) par tablo(i, 10), ".
J'ai effectué tous les changements que tu m'as conseillé. Cependant je n'ai pas de retour d'erreur, mais pas le résultat voulu.
As-tu une autre idée à me proposer ?
Merci pour ton aide.