Problème avec &

Bonjour à tous,

Débutante en VBA, je bloque - le code avec - sur le code intégré au fichier joint.

Il s'agit en fait d'une incrémentation une ligne sur deux.

Je remercie par avance à ceux qui m'aideront à comprendre mon erreur et souhaite à tous une belle journée.

Dearhannah

6test.xlsm (18.50 Ko)

Bonjour,

Quel est le rapport entre votre code et la seule feuille ?
Pourquoi commencez-vous sur la ligne 6 dans votre code ?

prenons Cells(c, 2) : vous voulez avoir quoi comme résultat si c = 6

Bonjour,

Je vous remercie pour votre attention.

En fait il s'agit d'une formule qui commence à la ligne 6.

la formule doit commencer en 6ème ligne, colonne 2

la suivante en 6ème ligne colonne 3, puis 4 puis 5

la ligne suivante (7) n'a pas d'incrémentation

la ligne 8 s'incrémente de 1

ainsi de de suite sur une centaine de lignes.

Est ce plus clair ?

Hannah

En fait il s'agit d'une formule qui commence à la ligne 6.
la formule doit commencer en 6ème ligne, colonne 2

Quelle est la formule exacte de départ en B6 dans votre feuille ? --> =SI(ET(ELEVES!B6<>"");ELEVES!$S6;"") ?

Pas facile de comprendre au vu de votre fichier

Bonjour Dan,

Oui la formule est celle là.

Ci joint le fichier avec complément d'information ; est ce suffisant ?

Hannah

6test.xlsm (24.00 Ko)

Bonjour,

Peux-tu mettre un fichier exemple avec ce que tu as (situation de départ) et ce que tu veux obtenir comme résultat ? ce sera plus simple à comprendre que des formules ou du code qui ne donnent pas le bon résultat mais dont on doit deviner la finalité.

Ci joint le fichier avec complément d'information ; est ce suffisant ?

Hum... pas trop. Là je vois par exemple qu'en B7 vous avez cette formule --> =SI(ET(ELEVES!B6<>"");ELEVES!$S6;"") et B8 =SI(ET(ELEVES!B7<>"");ELEVES!$S7;""), alors que vous avez deux fois Pierre dans la colonne A. Idem pour les suivants
est-ce correct au niveau formule car au vu de cela je ne vois pas le pourquoi de passer par VBA

Oui, c'est normal.

on pourrait en effet à cet endroit avoir une copie de cellule. Par contre, sur les 2 dernières colonnes il y a des changements dans la formule.

En fait, j'essaie de faire ce code uniquement pour "installer" la formule sur 190 lignes sans avoir à le faire manuellement d'autant que je dois répéter l'opération sur plus de 50 fichiers.

je ne peux pas faire un copier coller avec incrémentation du fait que cela se fait une ligne sur deux.

Une fois que c'est fait, je n'ai plus besoin du code. C'est aussi une façon de progresser sur le VBA.

Merci pour votre patience.

Si c'est une formule que vous voulez une ligne sur 2, essayez ce code pour la colonne B

Sub Macro2()
Dim i As Integer

For i = 7 To 12 Step 2
    Range("B" & i).FormulaR1C1 = "=IF(AND(ELEVES!RC<>""""),ELEVES!RC19,"""")"
Next i
End Sub

Si c'est ce que vous voulez, je regarderai pour faire le code complet sur toutes les colonnes

NB : le 12 mentionné concerne la ligne 12 de votre fichier posté. Changez le 12 par le nombre de lignes à traiter

A vous relire

EDIT : au fait cela sert à quoi le ET dans votre formule ?? La ligne comme ceci plutôt

Range("B" & i).FormulaR1C1 = "=IF(ELEVES!RC<>"""",ELEVES!RC19,"""")"

Bonjour de nouveau,

Merci Dan.

1. Pourquoi, dans mon code initial, la ligne

Cells(c, 2) = Cells(2, 2) & a & Cells(3, 2) & a & Cells(4, 2)

bloque ?

2. Pour le code proposé, ce n'est pas vraiment cela, désolée. J'obtiens comme résultat :

If(And(ELEVES!RC<>""),ELEVES!RC19,"")

Or je voudrais obtenir (if/si, And/et, peu importe) :

'=SI(ET(ELEVES!B6<>"");ELEVES!$S6;"")

J'ai indiqué dans le fichier joint, les résultats que je souhaiterais obtenir.

Merci

Hannah

4test.xlsm (24.43 Ko)

Vous avez mal recopié le code que je vous ai donné.

Au délà de cela c'est une formule dans la cellule que vous voulez ou du texte montrant une formule ?

et le ET ne sert à rien la de dedans

Je suis vraiment stupide, désolée.

Donc j'avais oublié un = pardon.

Ensuite, visiblement je ne m'exprime pas bien, pardon encore.

Je suis d'accord sur le non intérêt du ET (reste de formule, oui à éliminer)

texte ou formule, en soi cela est égal ; un remplacer par permet de passer de l'un à l'autre rapidement.

Je ne vais pas déranger plus longtemps, cela semble hors de mon champ de compétence.

Merci pour votre temps.

Hannah

Je ne vais pas déranger plus longtemps, cela semble hors de mon champ de compétence.

cela ne me dérange pas. Le tout est de savoir si c'est un texte montrant une formule que vous voulez ou la formule en elle même qui va vous renvoyer les infos de la feuille Eleve

Bon voilà deux solutions pour votre colonne B

1. Si vous voulez une formule qui vous renvoie des données depuis la feuille ELEVES, prenez ce code

Sub test1()
Dim i As Integer, j As Integer

j = 6
For i = 7 To 12 Step 2
    Range("B" & i).FormulaR1C1 = "=IF(ELEVES!R" & j & "C<>"""",ELEVES!R" & j & "C19,"""")"
    Range("B" & i + 1).FormulaR1C1 = "=IF(ELEVES!R" & j & "C<>"""",ELEVES!R" & j & "C19,"""")"
    j = j + 1
Next i
End Sub

2. Si vous voulez uniquement voir la formule dans la cellule comme vous l'avez montré dans votre dernier fichier

Sub test2()
Dim i As Integer, j As Integer
j = 6
For i = 7 To 12 Step 2
    Range("B" & i) = "'=SI(ELEVES!B" & j & "<>"""",ELEVES!S" & j & ","""")"
    Range("B" & i + 1) = "'=SI(ELEVES!B" & j & "<>"""",ELEVES!S" & j & ","""")"
    j = j + 1
Next i
End Sub

Cordialement

Rechercher des sujets similaires à "probleme"