Bonjour,
Dans un document complexe et confidentiel, je cherche à simplifier la saisie de données quotidienne. Tout allait bien jusqu'à ce que mon document de test fonctionne et que je copie la macro vers l'original, et là, c'est la cata. Je bloque sur des trucs tous bêtes et n'y comprend plus rien. Voici en gros la partie de ma macro qui pose problème :
Je selectionne une valeur dans la feuille "saisie", je la cherche dans la feuille donnée, je descend tout en bas afin de me mettre sur la première case vide que je trouve, et j'insère une ligne.
Ma macro :
End Sub[/QUOTE]
le numero est variable, le 5 dans "Cells(5,2) sera remplacé par une variable.
Sauf que si je rentre le numéro correct (exemple : "Robert") dans find : Find("Robert"), je n'ai pas de probleme. Mais si je met juste Find(numero), il me met une erreur, alors que dans mon ancienne macro non. Faut-il que je déclare numéro d'une manière spéciale ?
Ensuite, en executant la macro, j'insère un nombre de ligne correspondant au nombre d'occurance "Robert" trouvées. C'est à dire, au lieu d'insérer une ligne en dessous du dernier "Robert", il m'insère au dessus des "Robert" autant de ligne qu'il a trouvé de "Robert".
En gros le "ActiveCell.Rows("1:1").EntireRow.Select" me selectionne toutes les lignes de mon tableau contenant des "Robert" au lieu de ne selectionner que la ligne actuelle. Le pire, c'est que si j'enlève les deux dernière lignes après le Wend, j'ai bien sélectionner la bonne case ! Il suffirait donc de selectionner la ligne correspondante et d'insérer une ligne, sauf que je n'y arrives pas.
Dire que grâce à la fonction recherche de ce forum j'ai réussi à faire une très belle macro sans demander l'aide de personne mais en utilisant les problèmes d'autres personnes, me voilà bloqué sur un truc tout bête que je n'arrives pas à appeler autrement que "beug".
Merci d'avance de votre aide, rester bloquer sur une bétise comme ça à tendance à m'agacer.
Un grand bravo au forum.
Evilson
Dans un document complexe et confidentiel, je cherche à simplifier la saisie de données quotidienne. Tout allait bien jusqu'à ce que mon document de test fonctionne et que je copie la macro vers l'original, et là, c'est la cata. Je bloque sur des trucs tous bêtes et n'y comprend plus rien. Voici en gros la partie de ma macro qui pose problème :
Je selectionne une valeur dans la feuille "saisie", je la cherche dans la feuille donnée, je descend tout en bas afin de me mettre sur la première case vide que je trouve, et j'insère une ligne.
Ma macro :
Code:
Sub Bouton14_QuandClic()
'
' Bouton14_QuandClic Macro
' Macro enregistrée le 27/06/2011
'
numero = Sheets("Saisie").Cells(5, 2)
Sheets("Données").Select
Columns("C:C").Select
Selection.Find(numero).Select
While ActiveCell.Value <> ""
ActiveCell.Offset(1, 0).Select
Wend
ActiveCell.Rows("1:1").EntireRow.Select
Selection.Insert Shift:=xlDown
'
le numero est variable, le 5 dans "Cells(5,2) sera remplacé par une variable.
Sauf que si je rentre le numéro correct (exemple : "Robert") dans find : Find("Robert"), je n'ai pas de probleme. Mais si je met juste Find(numero), il me met une erreur, alors que dans mon ancienne macro non. Faut-il que je déclare numéro d'une manière spéciale ?
Ensuite, en executant la macro, j'insère un nombre de ligne correspondant au nombre d'occurance "Robert" trouvées. C'est à dire, au lieu d'insérer une ligne en dessous du dernier "Robert", il m'insère au dessus des "Robert" autant de ligne qu'il a trouvé de "Robert".
En gros le "ActiveCell.Rows("1:1").EntireRow.Select" me selectionne toutes les lignes de mon tableau contenant des "Robert" au lieu de ne selectionner que la ligne actuelle. Le pire, c'est que si j'enlève les deux dernière lignes après le Wend, j'ai bien sélectionner la bonne case ! Il suffirait donc de selectionner la ligne correspondante et d'insérer une ligne, sauf que je n'y arrives pas.
Dire que grâce à la fonction recherche de ce forum j'ai réussi à faire une très belle macro sans demander l'aide de personne mais en utilisant les problèmes d'autres personnes, me voilà bloqué sur un truc tout bête que je n'arrives pas à appeler autrement que "beug".
Merci d'avance de votre aide, rester bloquer sur une bétise comme ça à tendance à m'agacer.
Un grand bravo au forum.
Evilson