Problème de VBA

cs_makakdef Messages postés 50 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 31 août 2007 - 31 août 2007 à 09:05
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 - 1 sept. 2007 à 03:28
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

FMatrix07 Messages postés 233 Date d'inscription mercredi 26 février 2003 Statut Membre Dernière intervention 21 février 2009 2
31 août 2007 à 09:16
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
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
31 août 2007 à 09:20
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
0
cs_makakdef Messages postés 50 Date d'inscription mercredi 28 mars 2007 Statut Membre Dernière intervention 31 août 2007
31 août 2007 à 10:13
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
0
mortalino Messages postés 6786 Date d'inscription vendredi 16 décembre 2005 Statut Membre Dernière intervention 21 décembre 2011 18
31 août 2007 à 11:19
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_MPi Messages postés 3877 Date d'inscription mardi 19 mars 2002 Statut Membre Dernière intervention 17 août 2018 23
1 sept. 2007 à 03:28
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
0
Rejoignez-nous