Léger soucis avec des formules en VBA !!!

Résolu
Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010 - 31 mai 2010 à 16:01
Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010 - 1 juin 2010 à 13:54
Vous y croyez-vous à se genre de choses :

For li = 15 To 1000 'pour autant de lignes
    Sheets(Newname).Range("F" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("F" & li).Value
    Sheets(Newname).Range("G" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("G" & li).Value
    Sheets(Newname).Range("H" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("H" & li).Value
    Sheets(Newname).Range("I" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("I" & li).Value
    Sheets(Newname).Range("J" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("J" & li).Value
    Sheets(Newname).Range("K" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("K" & li).Value
    Sheets(Newname).Range("L" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("L" & li).Value
Next li


Moi j'y crois à fond, mais pas Excel... Quelqu'un peut me dire pourquoi ?

Merci

------------
Même joueur joue encore

6 réponses

Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010
1 juin 2010 à 13:37
Sorry Double Post :

Yop,

Voila j'ai modifié mon code, le probléme résidé dans les cellules nom-remplies. J'ai donc insérer un bloc if, vite fait :


For li = 15 To 1000 Step 3 'pour autant de lignes
    If Sheets(Oldname).Range("D" & li).Value = "" Then
    Else
        Sheets(Newname).Range("F" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("F" & li).Value
        Sheets(Newname).Range("G" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("G" & li).Value
        Sheets(Newname).Range("H" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("H" & li).Value
        Sheets(Newname).Range("I" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("I" & li).Value
        Sheets(Newname).Range("J" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("J" & li).Value
        Sheets(Newname).Range("K" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("K" & li).Value
        Sheets(Newname).Range("L" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("L" & li).Value
    End If
Next li


Euh... Ben merci ^^
------------
Même joueur joue encore
3
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
31 mai 2010 à 19:05
Pas bonjour non plus

Et pourquoi dis-tu que Excel n'y croit pas ?
Tu as une erreur ? laquelle ? sur quelle ligne ?
Que donne la formule après avoir été créée ?
Devrait ressembler à
"=NB.SI($P15:$IV15;F$12+4012)"
Chez moi, cela marche très bien, sous Excel 2003.
Je n'ai fais l'essai que dans la feuille courante, avec des Ranges limités de la même feuille.
Qu'y a t-il dans NewName et OldName ?
Les noms de ces feuilles existent bien ?

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010
1 juin 2010 à 11:58
Ohla ^^ que de questions...

Je récapitule, ma question portée surtout sur la syntaxe, apparament ça marche

Je donne l'entièretè du code qui sens un peu le saucisson met qui marche bien :

Private Sub Ajouterpage_QuandClic()
'Ajoute un page et prépare pour l'encodage
Dim Newname As String 'Nom de la feuille ajoutée
Dim Oldname As String 'Nom de la feuille d'origine
Dim li As Integer 'Index de ligne

Application.ScreenUpdating = False

Oldname = ActiveSheet.Name

'Copie
ActiveSheet.Copy after:=Sheets(Sheets.Count)
Newname = ActiveSheet.Name

'Modification de la copie
'--------- Indexation et nom de la feuille
Sheets(Newname).Select
Range("O1").Value = Range("O1").Value + 1
Range("P12").Value = Sheets(Oldname).Range("IV12").Value + 1
ActiveSheet.Name = Range("F3").Value & " - " & Range("O1").Value
Newname = ActiveSheet.Name
'--------- Effacement des données
Sheets(Newname).Select
Range("P15:IV1000").ClearContents
'--------- Incrémentation des formules

For li = 15 To 1000 'pour autant de lignes
    Sheets(Newname).Range("F" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("F" & li).Value
    Sheets(Newname).Range("G" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("G" & li).Value
    Sheets(Newname).Range("H" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("H" & li).Value
    Sheets(Newname).Range("I" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("I" & li).Value
    Sheets(Newname).Range("J" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("J" & li).Value
    Sheets(Newname).Range("K" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("K" & li).Value
    Sheets(Newname).Range("L" & li).FormulaLocal = "=NB.SI($P" & li & ":$IV" & li & ";F$12)+" & Sheets(Oldname).Range("L" & li).Value
Next li
'Application.EnableEvents = True
Application.ScreenUpdating = True
MsgBox ActiveSheet.Name & " créée !"
End Sub

------------
Même joueur joue encore
0
Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010
1 juin 2010 à 12:00
Ahoui, désolé.....

Bonjour, mon manque de politesse est vraiment honteux

------------
Même joueur joue encore
0

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 juin 2010 à 13:48
Mais quel est ton problème ????
0
Cybercraft2003 Messages postés 22 Date d'inscription jeudi 10 août 2006 Statut Membre Dernière intervention 8 juillet 2010
1 juin 2010 à 13:54
était.... Juste une erreur 1004 argument de l'objet non-défini

Mais j'ai trouver la solution comme un grand. Donc voila, désolé d'avoir encombré le forum pour si peu...

------------
Même joueur joue encore
0
Rejoignez-nous