Inserer valeur avec conditions
Résolu/Fermé
vinceggg
-
4 avril 2011 à 09:04
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 - 5 avril 2011 à 11:37
mic13710 Messages postés 1087 Date d'inscription samedi 26 novembre 2005 Statut Membre Dernière intervention 13 mai 2021 - 5 avril 2011 à 11:37
A voir également:
- Inserer valeur avec conditions
- Insérer une vidéo sur powerpoint - Guide
- Insérer signature word - Guide
- Insérer liste déroulante excel - Guide
- Insérer sommaire word - Guide
- Insérer filigrane word - Guide
2 réponses
mic13710
Messages postés
1087
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
355
Modifié par mic13710 le 4/04/2011 à 15:59
Modifié par mic13710 le 4/04/2011 à 15:59
Il ne suffit pas de déclarer une variable, encore faut-il lui attribuer une valeur.
La difficulté dans les tableaux filtrés c'est de sélectionner la seule plage visible.
Il faut donc chercher la première ligne visible de la plage et ensuite chercher la dernière cellule utilisée dans la colonne de référence (ici la F)
Dans le cas d'un seul critère, remplacer les lignes suivantes :
Range("G7:G" & End_Of_Table).Select
ActiveCell.FormulaR1C1 = "LOAN-TEST"
Selection.FillDown
Par :
Range("G7").Select
Dim cellule As Range
Set cellule = ActiveCell
'récupérer la prochaine cellule visible
Do
Set cellule = cellule.Offset(1, 0)
Loop Until cellule.EntireRow.Hidden = False
cellule.Select
ActiveCell.FormulaR1C1 = "LOAN-TEST"
Selection.Copy
Range("G" & ActiveCell.Row & ":G" & Range("F65536").End(xlUp).Row).Select
ActiveSheet.Paste
Ce code n'est pas très propre mais il devrait fonctionner.
A vous de l'adapter à votre utilisation.
La variable End_Of_Table peut-être supprimée, à moins qu'elle ne soit utilisée par ailleurs
Michel
Edit : message modifié suite à l'élimination d'une variable inutile.
La difficulté dans les tableaux filtrés c'est de sélectionner la seule plage visible.
Il faut donc chercher la première ligne visible de la plage et ensuite chercher la dernière cellule utilisée dans la colonne de référence (ici la F)
Dans le cas d'un seul critère, remplacer les lignes suivantes :
Range("G7:G" & End_Of_Table).Select
ActiveCell.FormulaR1C1 = "LOAN-TEST"
Selection.FillDown
Par :
Range("G7").Select
Dim cellule As Range
Set cellule = ActiveCell
'récupérer la prochaine cellule visible
Do
Set cellule = cellule.Offset(1, 0)
Loop Until cellule.EntireRow.Hidden = False
cellule.Select
ActiveCell.FormulaR1C1 = "LOAN-TEST"
Selection.Copy
Range("G" & ActiveCell.Row & ":G" & Range("F65536").End(xlUp).Row).Select
ActiveSheet.Paste
Ce code n'est pas très propre mais il devrait fonctionner.
A vous de l'adapter à votre utilisation.
La variable End_Of_Table peut-être supprimée, à moins qu'elle ne soit utilisée par ailleurs
Michel
Edit : message modifié suite à l'élimination d'une variable inutile.
mic13710
Messages postés
1087
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
355
Modifié par mic13710 le 4/04/2011 à 11:11
Modifié par mic13710 le 4/04/2011 à 11:11
Déjà, il faudrait savoir sur quel logiciel vous travaillez.
Si c'est excel, End_of_Table n'est pas une instruction vba valide.
Pour vba c'est une variable, et vous ne l'avez pas défini ni même attribué une valeur.
Michel
Si c'est excel, End_of_Table n'est pas une instruction vba valide.
Pour vba c'est une variable, et vous ne l'avez pas défini ni même attribué une valeur.
Michel
Bonjour,
merci pour la reponse rapide,
je travaille sur VBA - Microsoft Office Excel 2007.
mon wexcel sheet s'appelle Valuation
J'ai rajoute End_Of_Table as integer au debut du programme,
mais la colonne G ne se remplit toujours pas.
J'ai de nouevau ce message d'erreur
Run-time error '1004':
Method 'Range' of object'_Global' failed.
Et c'est toujours la meme ligne qui est surligne en jaune.
En fait je n'arrive pas a ecrire correctement: que excel doit ecrire "loan" dans la colonne G jusuqu'a la derniere ligne du tableau
merci pour la reponse rapide,
je travaille sur VBA - Microsoft Office Excel 2007.
mon wexcel sheet s'appelle Valuation
J'ai rajoute End_Of_Table as integer au debut du programme,
mais la colonne G ne se remplit toujours pas.
J'ai de nouevau ce message d'erreur
Run-time error '1004':
Method 'Range' of object'_Global' failed.
Et c'est toujours la meme ligne qui est surligne en jaune.
En fait je n'arrive pas a ecrire correctement: que excel doit ecrire "loan" dans la colonne G jusuqu'a la derniere ligne du tableau
mic13710
Messages postés
1087
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
355
4 avril 2011 à 11:28
4 avril 2011 à 11:28
Vous pouvez faire ce que vous souhaitez sans passer par des macros.
Votre texte en H1, en G1 vous mettez cette formule :
=SI(ESTTEXTE(H1);SI(ESTNUM(CHERCHE("Loan";H1));"Loan";"");"")
Si "Loan" existe en H1, il apparaitra en G1. Cette formule est indifférente à la casse.
Votre texte en H1, en G1 vous mettez cette formule :
=SI(ESTTEXTE(H1);SI(ESTNUM(CHERCHE("Loan";H1));"Loan";"");"")
Si "Loan" existe en H1, il apparaitra en G1. Cette formule est indifférente à la casse.
mic13710
Messages postés
1087
Date d'inscription
samedi 26 novembre 2005
Statut
Membre
Dernière intervention
13 mai 2021
355
4 avril 2011 à 11:33
4 avril 2011 à 11:33
A adapter bien entendu à votre langue excel car il me semble que vous avez une version en anglais.
merci pour cette solution,
Mais, je ne peux pas privilegier cette solution, car dans la realite, dans la colonne G, je cherche a ecrire automatiquement, "loan" (quand une ligne contiendra loan dans la colonne F). Mais je cherche aussi a ecrire d'autres valeurs en G, en fonciton des valeurs en H.
Donc je suis oblige de faire tourner une macro, pour que toutes les "insertions" en G, puissent se faire sans s'impacter.. (il doit y avoir plus de 20 000 lignes dans mon fichier excel), c'est pour cela que je dois en automatiser le traitement.
Si j'arrive a automatiser la partie avec "loan", j'arriverai a automatiser le reste par moi-meme, mais je suis oblige de faire comme ca, du moins je pense.
Mais, je ne peux pas privilegier cette solution, car dans la realite, dans la colonne G, je cherche a ecrire automatiquement, "loan" (quand une ligne contiendra loan dans la colonne F). Mais je cherche aussi a ecrire d'autres valeurs en G, en fonciton des valeurs en H.
Donc je suis oblige de faire tourner une macro, pour que toutes les "insertions" en G, puissent se faire sans s'impacter.. (il doit y avoir plus de 20 000 lignes dans mon fichier excel), c'est pour cela que je dois en automatiser le traitement.
Si j'arrive a automatiser la partie avec "loan", j'arriverai a automatiser le reste par moi-meme, mais je suis oblige de faire comme ca, du moins je pense.
5 avril 2011 à 03:23
un tres grand merci.
5 avril 2011 à 11:37