Problème de variable

tiow

XLDnaute Nouveau
Bonjour à toutes et à tous,

J'ai longuement parcouru ce forum qui m'a permit de bien débuter avec vba (=trouver plein de fonction utiles) seulement, aujourd'hui j'ai un petit souci (et j'espère que vous pourrez m'aider).
J'ai écrit dans une macro:
LigneJour = "=MATCH(""Lundi"",C2:C2,0)"
Qui me permet de trouvé dans quelle ligne se trouve "lundi".

Maintenant j'aimerai pouvoir faire quelque chose dans le style:
Cells(LigneJour,5) = "test"

Seulement cela me renvoie "incompatibilité de type".
Savez vous comment faire pour que dans ma variable "LigneJour" j'ai le resultat, par exemple 44, et non la formule, pour que je puisse l'insérer à "Cells(,)"

Merci de votre aide,

Thibaut
 

Pièces jointes

  • tiow.zip
    8.8 KB · Affichages: 15
  • tiow.zip
    8.8 KB · Affichages: 17
  • tiow.zip
    8.8 KB · Affichages: 17
Dernière édition:

tiow

XLDnaute Nouveau
Re : Problème de variable

Salut Turbo,

En mettant d'abord ma formule ,=equiv("lundi";B:B;,0), en A1 puis en faisant dans la macro
LigneJour = Cells(1 ,1).Value
je ne peux toujours pas utiliser la variable "LigneJour", la ligne
Code:
Cells(LigneJour, x) = "test"
me renvoie toujours une incompatibilité de type ...

En fait, ce que j'essaie de faire, c'est qu'a partir d'une liste de jour (en ligne) et une liste de personne (en colonne), je puisse écrire quelque chose dans cette intersection. Ce qui me donnerai Cells(LigneJour, ColonnePers) = "quelquechose".

Merci encore,

Thibaut.
 

gilbert_RGI

XLDnaute Barbatruc
Re : Problème de variable

Bonjour
essayez ce code

Sub essai()
Sheets(1).Select
Columns("C:C").Select
Selection.Find(What:="Lundi", After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate
Cells(ActiveCell.Row, 5).Value = "test"
End Sub

Cordialement

RGI
 

tiow

XLDnaute Nouveau
Re : Problème de variable

Ok Turbo

J'ai donc joint mon fichier simplifié


edit: Slt Gilbert, je vais essayez ton code, merci
 

Pièces jointes

  • tiow.zip
    8.8 KB · Affichages: 15
  • tiow.zip
    8.8 KB · Affichages: 19
  • tiow.zip
    8.8 KB · Affichages: 21
Dernière édition:

gilbert_RGI

XLDnaute Barbatruc
Re : Problème de variable

pour tous les lundis de la liste

Sub essai2()
With Worksheets(1).Range("c1:c5000")
Set c = .Find(What:="Lundi", LookIn:=xlValues)
If Not c Is Nothing Then
PremAdresse = c.Address
Do
c.Offset(0, 2).Value = "test"
Set c = .FindNext(c)
Loop While Not c Is Nothing And c.Address <> PremAdresse
End If
End With

End Sub

:D

Cdlt

RGI
 

tiow

XLDnaute Nouveau
Re : Problème de variable

Merci Gilbert,
Je me suis mal exprimé, car en effet, tu as répondu à ma question de pouvoir faire quelque chose dans le genre de :
Code:
Cells(LigneJour,5) = "test"

Mais j'avais pris cette exemple pour exposer mon problème de variable .. Car avec ta méthode je ne crois pas arriver à faire quelque chose du genre
Code:
Cells(LigneJour,ColPers)
ou alors je n'ai pas tous compris ..

C'est pour cela que j'aimerai savoir s'il est possible d'intégrer ma variable "ligneJour" qui dans mon code qui VBA contient
Code:
Select Case BoxJour
Case "Lundi"
LigneJour = "=MATCH(""Lundi"",C2:C2,0)"
...
Cells(LigneJour,ColPers)

Ou si je dois essayer de faire autrement, ou si j'ai mal compris ton exemple ?

Merci,
Thibaut.
 
Dernière édition:

tiow

XLDnaute Nouveau
Re : Problème de variable

Merci beaucoup ninbihan,

Le code que tu m'as donné fonctionne tres bien pour le petit exemple que j'ai fourni .. seulement si pers2 et pers1 sont interchangés.. cela ne fonctionne plus.
Pour les jours de la semaine, cela ne devrait pas posé de problème puisqu'il change rarement d'ordre, cependant (c'est tjs pareil avec ceux qui posent les question :p), j'ai plusieurs lignes par jours.
Et j'ai comme l'impression que cela ne devient plus possible d'écrire quelque chose à l'intersection du jour et de la personne + la 3eme condition (matin, aprem, nuit). J'ai comme l'impression d'avoir mal expliqué mon problème dès le début ..

Si tu arrives à comprendre ce que je souhaite, Penses tu qu'avec ta fonction je puisse mettre 3 conditions un peu comme dans mon exemple.
Ci joint mon exemple peut être compréhensible

Merci beaucoup de ton aide,
Thibaut.
 

Pièces jointes

  • tiow3.zip
    9.8 KB · Affichages: 14
Dernière édition:

tiow

XLDnaute Nouveau
Re : Problème de variable

Re bonjour à tous,

Même si je cherche à contourner un peu le problème, pouvez vous me dire s'il est "tout simplement" possible de récupérer la valeur numérique de LigneJour, quand j'écrit en vba:
Code:
LigneJour = "=MATCH(""Lundi"",C2:C2,0)"
Car pour excel LigneJour vaut toujours "=MATCH(""Lundi"",C2:C2,0)" et non son résultat renvoyé dans une cellule ...

Merci,
Thibaut
 

tiow

XLDnaute Nouveau
Re : Problème de variable

Merci beaucoup Turbo,

C'est a peu pres exactement ce que je voulais faire.
Ton
Code:
BoxJour.ListIndex * 3
m'aide beaucoup, j'avais même pas pensé à multiplier par trois pour en avoir trois fois plus :eek:


Bonne journée à tous et encore merci,

Thibaut
 

Discussions similaires

Statistiques des forums

Discussions
312 496
Messages
2 088 978
Membres
103 996
dernier inscrit
KB4175