![]() |
| Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé. | |||||||
|
|||||||
![]() |
|
|
Outils de la discussion |
|
|
#1 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: juin 2008
Messages: 31
|
Bonjour,
Je recherche de l'aide pour faire une recherche des cellules qui ont la valeurs -1000 dans mon tableau, et leurs données la valeur de la cellule au dessus. Exemple: - la cellule B6 contient -1000, je veus lui mettre la valeur de la cellule B5 - la cellule D4 contient -1000, je veus lui mettre la valeur de la cellule D3 etc... sachant que la valeur -1000 peut etre n'importe où dans mon tableau. Voici le fichier ci joint. Merci d'avance pour vos solutions. |
|
|
|
|
|
#2 (permalink) |
|
Membre Expert
![]() Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
|
Bonjour,
Vous pouvez essayer en copiant ce code dans votre feuille : Code :
Private Sub CommandButton1_Click() Dim plg As Range, cel As Range dl = Range("B65536").End(xlUp).Row Set plg = Range("B2:G" & dl) For Each cel In plg If cel.Value = -1000 Then adr = cel.Address lgn = cel.Row If lgn = 2 Then MsgBox "La valeur -1000 a été trouvée en " & adr & "!" & Chr(10) _ & "Impossible de modifier cette valeur qui se trouve sous la ligne de titre." Else col = cel.Column cel.Value = Range(Cells(lgn - 1, col), Cells(lgn - 1, col)).Value End If End If Next End Sub
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
|
|
|
|
|
|
#3 (permalink) |
|
Futur Membre du Club
![]() Date d'inscription: juin 2008
Messages: 31
|
Merci pour ton aide
J'ai essayé le code => c'est tout à fait ce que je voulais, car moi j'avais des boucles de recherche pour chaques colonnes - lignes, votre solution est plus rapide. Par contre, si vous avez le temps, pouvez vous mettre des commentaires pour que je puisse bien comprendre votre code. Merci encore |
|
|
|
|
|
#4 (permalink) |
|
Membre Expert
![]() Date d'inscription: janvier 2006
Localisation: St Cyr s/mer (83)
Âge: 64
Messages: 1 264
|
Voilà :
Code :
Option Explicit Private Sub CommandButton1_Click() Dim plg As Range, cel As Range, adr$, lgn&, col%, dl& 'Recherche du N° de la dernière ligne absolue renseignée pour la colonne "B" dl = Range("B65536").End(xlUp).Row 'Définition de la plage contenant les données Set plg = Range("B2:G" & dl) 'Pour chaque cellule contenue dans la plage définie par la variable "plg" For Each cel In plg 'si la valeur de la cellule définie par la variable "cel" est = -1000 If cel.Value = -1000 Then 'affectation de l'adresse de la cellule à la variable "adr" exemple ($C$4) adr = cel.Address 'affectation du N° de ligne de la cellule traitée à la variable "lgn" lgn = cel.Row 'Si la valeur recherchée (-1000) a été trouvée en ligne 2 on signale l'impossiblité _ d'affecter la valeur de la cellule du dessus puisqu'il s'agit d'une ligne de titre If lgn = 2 Then MsgBox "La valeur -1000 a été trouvée en " & adr & "!" & Chr(10) _ & "Impossible de modifier cette valeur qui se trouve sous la ligne de titre." 'sinon Else 'affectation du N° de colonne de la cellule traitée à la variable "col" col = cel.Column 'affectation à la cellule traitée de la valeur de la cellule de la ligne précédente et de la même colonne cel.Value = Range(Cells(lgn - 1, col), Cells(lgn - 1, col)).Value End If End If 'Traitement de la cellule suivante Next End Sub J'ai ajouté : "Option Explicit" qui permet avec "Outils" puis "Débogage" de vérifier que toutes les variables ont été déclarées (ce qui est conseillé). Pour la déclaration des variables, si besoin est, vous pouvez regarder ici : http://silkyroad.developpez.com/VBA/LesVariables/#LII-E Pour la recherche de la dernière ligne renseignée, mais aussi d'autres possibilités, regarder ici : http://www.developpez.net/forums/d33...uille-calculs/
__________________
N'oubliez pas de cliquer sur quand vous avez obtenu la réponse à votre question.
Dernière modification par jacques_jean ; 12/10/2008 à 10h41 |
|
|
|
|
![]() |
![]() |
||
Recherche valeur ds un tableau
|
||
Offres d'
emploi informatique
sur Lesjeudis.com
|
| Outils de la discussion | |
|
|