Bonjour à tous,
Je poste ce message suite à deux problèmes rencontrés sur mon travail en VBA (Excel). Notez bien que je ne suis qu'un débutant audidacte (lol) qui le pratique depuis 3 semaines (re-lol) en s'aidant du générateur de macros Excel (là c'est le pompon) ;o)
Voila:
1°/problème 1
J' ai crée un UserForm vba dans lequelle je sélectionne un champs de liste de mon TCD. Ensuite, je modifie ce champs en utilisant une valeur précédemment récupérée dans un espace de formulaire (montitredechamps.value)
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 ActiveSheet.PivotTables("monTCDperso").PivotFields("PERIOD").CurrentPage = _ montitredechamps.Value
L'éxécution de ce code fonctionne: la valeur est modififée. Mais après rafraichissement, il s'avère que la valeur à remplacé l'en-tête précédente et en gardant les mêmes valeurs!
2°/ Problème 2
Dans mon cas, je voudrais rechercher un nom de code dans une base de donnée Excel.
Si cette valeur est existante, alors je conserve le numéro de ligne correspondant (variable "C"), pour le réutiliser quand je voudrai ajouter des valeurs sur cette ligne.
Si cette valeur est inexistante, alors j' attribue à ma variable "C" une valeur fixe: 37. Ce numéro de ligne stocké est le numéro fixe qui correspond à la nouvelle ligne vierge qui sera crée par la suite.
Seulement, l'exécution de cette tâche me pose un problème : j'arrive bien à rechercher ma valeur quand elle est existante et à obtenir le numéro de ligne, mais cela me renvoie une erreur quand la fonction .Find ne trouve rien.("Nothing")
Pourriez vous m'aider S.V.P??? Merci d'avance...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 Dim C 'Je recherche dans l'espace C4:C5000 la valeur: With Worksheets("DPT").Range("C4:C5000") Set C = .Find("mon nom de recherche", LookIn:=xlValues) If Not C Is Nothing Then Range("D20") = C C.Select End With 'Je garde en mémoire le résultat de ma sélection Range(Trim(Str(ActiveCell.Row)) & ":" & Trim(Str(ActiveCell.Row))).Select RefLine = ActiveCell.Row 'Cette variable contient le n° de ligne correspondant à ma recherche!!! Range("D20") = RefLine![]()
Partager