Résolu comment utiliser like avec une variable VBA excel?

  • Auteur de la discussion User_1532714
  • Date de début
U

User_1532714

Invité
salut à tous je voudrais créer un programme en VBA sur excel pour qu'il test si une case contient la valeur d'une variable. Je m'explique: j'ai un mot dans la variable "resultat", par exemple: "ok", et je voudrais que le programme test des cellules et s'arrête si il trouve "ok" ou une case vide. Pour l'instant j'en suis là:

Do While Not (IsEmpty(ActiveCell))
If ActiveCells.Value Like "resultat" Then
ActiveCells.Value = "ActiveCells(0, 1).value+1"
Else: Selection.Offset(1, 0).Select
End If
Loop

mais du coup, il cherche le mot "resultat" et non le mot contenue dans la variable "resultat".
comment faire? :??:
 

drul

Obscur pro du hardware
Staff
ben enlève les "" ...
par contre c'est un peu confu ton code ... tu cherches a fire quoi exactement ?
 
U

User_1532714

Invité
je cherche à chercher dans une liste de possibilités (listées dans une colonne excel) laquelle est égale au contenue de la variable puis d'ajouter 1 au nombre qui se trouve à droite de la bonne possibilités.
j'ai testé ta méthode avec mon programme mais ça ne marche pas et je pense que l’erreur vient d'ailleur :??:
je vais essayer de trouver et te tiendrais au courant :p
 

drul

Obscur pro du hardware
Staff
Travailler avec selection est pas très propre ici, même si ça pourrait fonctionner ...

ça par contre c'est faux !
ActiveCells.Value = "ActiveCells(0, 1).value+1"

ça se serait mieux:
ActiveCells.Offset(0, 1).value = ActiveCells.Offset(0, 1).value+1


 
U

User_1532714

Invité
Meilleure réponse
j'ai trouvé l'erreur il n'y a pas de s à CellValue

voici tout le programme corrigé:
Code:
Sub test1()
'
' test1 Macro
'
' Touche de raccourci du clavier: Ctrl+e
'
    Dim resultat As String
    If ActiveCell.Value Like "*emprunté*" Then
    ActiveCell.Value = "disponible"
    ActiveCell.Offset(0, 1).Activate
    ActiveCell.FormulaR1C1 = ""
    ActiveCell.Offset(0, 1).Activate
    ActiveCell.FormulaR1C1 = ""
    Else
    If ActiveCell.Value Like "*disponible*" Then
    ActiveCell.Value = "emprunté"
    ActiveCell.Offset(0, 1).Activate
    ActiveCell.FormulaR1C1 = "=Now()+14"
    ActiveCell.Offset(0, 1).Activate
    
    resultat = InputBox("nom de l'emprunteur?", "emprunteur")
    If resultat <> "" Then
    MsgBox resultat
    ActiveCell.Formula = resultat
    Sheets("emprunteurs").Select
    Range("A2").Select
        Do While Not (IsEmpty(ActiveCell))
        If ActiveCell.Value = resultat Then
        Selection.Offset(0, 1).Select
        ActiveCell.Formula = ActiveCell.Value + 1
        Else: Selection.Offset(1, 0).Select
        End If
        Loop
         If ActiveCell.Value = "" Then
         ActiveCell.Formula = resultat
         ActiveCell.Offset(0, 1).Activate
         ActiveCell.Formula = "1"
         End If
    Sheets("livres").Select
    End If
    Else
    MsgBox "mauvaise cellule selectionnée"
    End If
    End If
End Sub
:bounce:
 

drul

Obscur pro du hardware
Staff
Bravo (pour le résultat, pas pour la forme, ce code est atroce :D)
 
Vous devez vous inscrire ou vous connecter pour répondre ici.
Derniers messages publiés
Statistiques globales
Discussions
730 220
Messages
6 720 161
Membres
1 586 592
Dernier membre
Rumple
Partager cette page
Haut