Même en supprimant cette fonction : Cell.Select
Cela ne fonctionne pas.
Frustration, frustration...
Version imprimable
Même en supprimant cette fonction : Cell.Select
Cela ne fonctionne pas.
Frustration, frustration...
Ca dépasse mes compétences en Visual basic appliqué à Excel :)
Je recoderais ca en utilisant de l'algorithmique classique et en jouant sur les indices de thisworkbook.worksheet(Feuille).cells(i,j) pour me balader dans ton classeur...
je m'y pencherais un de ces jours.
merci quand meme
j'ai recodé ca:
et ca semble marcher...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110 Public valeurAnnee As Long, valeurMois As String, valeurPret As String, valeurInfo As String Public feuille As String, derniereLigne As Long, derniereColonne As Long Public deplacementMois As Long, deplacementAnnee As Long Public valeurRecherchee As Double Public ligneTarget As Long Public colonneTarget As Long Public AdCell As String Function informationsPret2() As Double Application.ScreenUpdating = False AdCell = Application.ThisCell.Address Application.Volatile Call renseignementColonne Call rechercheValeurPret informationsPret2 = valeurRecherchee End Function Sub renseignementColonne() Dim numeroLigne As Long Dim lettreColonneValeur As String Dim plageAnnee As Range Dim plageMois As Range lettreColonneValeur = Split(AdCell, "$")(1) numeroLigne = Split(AdCell, "$")(2) Set plageAnnee = Range(lettreColonneValeur & 12) Set plageMois = Range(lettreColonneValeur & 13) valeurAnnee = plageAnnee.MergeArea.Cells(1, 1).Value valeurMois = plageMois.MergeArea.Cells(1, 1).Value valeurInfo = Range(lettreColonneValeur & 14).Value valeurPret = Range("A" & numeroLigne).Value feuille = valeurPret End Sub Sub rechercheValeurPret() Dim colonneValeur As Integer Dim plageRechercheValeurPret As String Worksheets(feuille).Activate If valeurInfo = " Remboursement Capital" Then colonneValeur = 3 deplacementMois = 6 deplacementAnnee = 7 ElseIf valeurInfo = " Intérêts" Then colonneValeur = 4 deplacementMois = 5 deplacementAnnee = 6 ElseIf valeurInfo = " Capital dû aprés échéance" Then colonneValeur = 6 deplacementMois = 3 deplacementAnnee = 4 End If Call compteurLignes(feuille, "A") Dim i As Integer i = 12 Dim trouve As Boolean trouve = False While i <= derniereLigne And Not trouve If ThisWorkbook.Worksheets(feuille).Cells(i, colonneValeur + deplacementAnnee).Value = valeurAnnee And ThisWorkbook.Worksheets(feuille).Cells(i, colonneValeur + deplacementMois).Value = valeurMois Then valeurRecherchee = ThisWorkbook.Worksheets(feuille).Cells(i, colonneValeur).Value trouve = True End If i = i + 1 Wend End Sub Sub compteurLignes(feuilleCompteur As String, colonneCompteur As String) derniereLigne = 0 Worksheets(feuilleCompteur).Activate derniereLigne = Range(colonneCompteur & Rows.Count).End(xlUp).Row End Sub
J'ai juste changé ton affectation de valeur de colonne lettre en chiffre, et je me suis balladé directement dans la feuille et la paf, ca fonctionne!! (tout du moins chez moi).
Par contre si quelqu'un passe par la et peux me dire pourquoi le code de base ne fonctionnait pas (la partie boucle sur la selection), je suis preneur.
superbe. cela fonctionne. merci beaucoup.
Bonjour,
J'ai un autre soucis, si je fais une sélection en lui disant de ne prendre que les valeurs supérieures au mois de "juillet", il n'arrive pas a faire la sélection car il sélectionne par ordre alphabétique et non chronologique.
Pourtant j'ai mis la cellule en format (Cellule, "mmmm")
Par exemple il va prendre Mai et Mars car la lettre "m" est après la lettre "j".
Tu vas probablement être obligé de faire ta sélection autrement.
A priori, il ne sait pas trier des mois par ordre chronologique...
Est ce que tu peux nous donner ton code histoire qu'on puisse mieux voir ce que tu veux faire??
JE pense qu'il faut mettre toutes tes valeurs dans un tableau et une table de correspondance Mois / ordre chronologique pour trier le tableau.
Ou peut etre juste chercher le mois de juillet et prendre tout ce qu'il y a après.
Merci, j'ai suivi tes conseils en créant une table de correspondance ( Janvier = 1, Février = 2...…).
Cela fonctionne.
Merci à vous tous