Problème de VBA

Signaler
Messages postés
50
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
31 août 2007
-
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
-
Bonjour tout le monde,

J'ai un problème pour récuperer un numéro de ligne dans un fichier excel.
Voila le code qui me pose problème:
Private Function InsertRowWithH()
Dim CellValueB, CellValueC, CellValueD, CellValueE, CellValueF, CellValueG As Variant
Dim NoRow As Long
Dim NumS As String
    NoRow = 1
    CellValueB = Range("B" & NoRow).Value
    CellValueC = Range("C" & NoRow).Value
    CellValueD = Range("D" & NoRow).Value
    CellValueE = Range("E" & NoRow).Value
    CellValueF = Range("F" & NoRow).Value
    CellValueG = Range("G" & NoRow).Value
    NumS = CellValueB + CellValueC + CellValueD + CellValueE + CellValueF + CellValueG
    While ColH <> NumS
        NoRow = NoRow + 1
        CellValueB = Range("B" & NoRow).Value
        CellValueC = Range("C" & NoRow).Value
        CellValueD = Range("D" & NoRow).Value
        CellValueE = Range("E" & NoRow).Value
        CellValueF = Range("F" & NoRow).Value
        CellValueG = Range("G" & NoRow).Value
        NumS = CellValueB + CellValueC + CellValueD + CellValueE + CellValueF + CellValueG
    Wend
    MsgBox (NoRow)
    InsertRowWithH = NoRow
End Function

En ésperant que vous pouurez m'aider, je vous souhaite une excellente journée.

/!/makakdef/!/
Software is like sex, it's better when it's free

5 réponses

Messages postés
233
Date d'inscription
mercredi 26 février 2003
Statut
Membre
Dernière intervention
21 février 2009
2
Bonjour,

Pour récuperer le numéro de la ligne de ta cellule active tu fais
Valcel = ActiveCell.Row

@+: SCCréat
Pensez:  Réponse acceptée
Stéphan.COCHET
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
50
Salut,
Deux trois petites chose.
Pourquoi déclarer en Varaint et non en String par exemple???

Que contient ColH ???
Que contienne les cellule?
Que doit donne : CellValueB + CellValueC + CellValueD + CellValueE + CellValueF + CellValueG ???? un nombre ou une Concaténation de Chaine?????

Si tu sais que la fonction retourne un long alors dit le:
Private Function InsertRowWithH() As Long
@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
50
Date d'inscription
mercredi 28 mars 2007
Statut
Membre
Dernière intervention
31 août 2007

ReBonjour,

Merci pour vos réponses,
J'ai mis en variant car je recevais une incompabilité de type (je sais que le type variant ralentit enormement le systeme ><)
La variable ColH contient un nombre concaténé des colonnes b à g
Les cellules contiennent uniquement des nombres
Voila merci encore pour tout votre aide!!!

/!/makakdef/!/

Software is like sex, it's better when it's free
Messages postés
6786
Date d'inscription
vendredi 16 décembre 2005
Statut
Membre
Dernière intervention
21 décembre 2011
18
Salut
pas Variant mais Integer, Long pour entier, Double pour décimaux ou String pour caractères

@++

<hr size="2" width="100%" />( Nouveau forum : Exclusivement Office & VBA
Messages postés
3877
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
23 août 2018
18
Si ColH est un nombre concaténé (donc une chaîne), NumS devrait l'être aussi
Sinon, il te faudrait "caster" le type

Essaie en changeant les "+" par des "&"
NumS = CellValueB & CellValueC & CellValueD & CellValueE & CellValueF & CellValueG

ou encore
While CLng(ColH) <> CLng(NumS)

MPi