condition dans le vba

  • Initiateur de la discussion DJ.RUN
  • Date de début
D

DJ.RUN

Guest
Bonjour à toutes et à tous,

je cherche désespérement a expliquer à mon VBA une condition, mais on doit pas parler le même langage lui et moi (lol), non, je mis prends comme un pied.

je vous explique :
il y a deux choses que je voudrai lui faire faire (doublon lol)

la première :

comment lui dire en bon langage, que si l'on modifie la cell A1, il faut ecrire dans la cell D4 la formule : " =toto"

la deuxième :

j'ai réussi à écrire un code qui fonctionne (ben oui c'est possible)
mais je voudrai rajouter une condition à l'intérieur

voici mon code:

'recherche la cellule contenant la formule =toto

Cells.Find(What:="=toto", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,MatchCase:= _False).Activate

'copie la formule de la cellule sur la 1ere cellule à droite

ActiveCell.Offset(0, 1) = ActiveCell.Formula

'copie la valeur de la cellule sur elle même

ActiveCell.Offset(0, 0) = ActiveCell.Value

je voudrai rajouter un test par expemple qu'il controle le contenu d'une cellule, disons que si la cellule F7 contient : "titi", alors il cherche la cellule qui contient "=toto" et il copie la valeur de la cellule sur elle même sinon
il cherche la cellule qui contient "=toto", il copie la formule sur la 1ère cellule à droite et il continue mon petit code .

j'espère avoir été assez clair ?

merci d'avance pour votre aide

dj.run
 
N

nanor

Guest
Salut dj.run, salut le forum,
Je suis encore débutant en vba mais voila la soluc a laquelle je pense


Tu peux utiliser la fonction select qui permet de faire des conditions.

Genre:
Select Case testexpression
[Case expressionlist-n
[statements-n]] ...
[Case Else
[elsestatements]]


exemple:
Select Case (UCase(Range("F7").Value))
Case "toto"
' ActiveCell.Offset(0, 1) = ActiveCell.Formula
Case "tata"
' ActiveCell.Offset(0, 0) = ActiveCell.Value
Case Else
End Select


nanor
 
D

DJ.RUN

Guest
bonjour nanor,

merci pour ton aide et de m'avoir consacré tu temps,

j'ai trouvé la solution pour ma premiere question.

mais pour la deuxieme je me suis mal expliqué .

en fait j'ai une cellule dans mon tableau qui est nomée (insert nom)
titi.

j'aimerai faire comprendre à mon "bip" (censuré) d'ordinateur que si le résultat de ma recherche :

'recherche la cellule contenant la formule =toto

Cells.Find(What:="=toto", After:=ActiveCell, LookIn:=xlFormulas,
LookAt _:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext,MatchCase:= _False).Activate

c'est à dire la cellule qui contient la formule "=toto" est nomée titi alors il me fait un copier coller sur la cellule soit :

ActiveCell.Offset(0, 0) = ActiveCell.Value

sinon il fait ma procédure qui consiste à copier la formule dans la première cellule à droite etc... soit

'copie la formule de la cellule sur la 1ère cellule à droite

ActiveCell.Offset(0, 1) = ActiveCell.Formula

'copie la valeur de la cellule sur elle même

ActiveCell.Offset(0, 0) = ActiveCell.Value

je continu à chercher de mon coté, si par bonheur tu trouvais une solution fais le moi savoir .

encore merci pour ton aide

dj.run
 

Discussions similaires