Remplissage automatique

foxr33

XLDnaute Nouveau
Bonsoir à tous :)

J'ai un petit problème pour auto-compléter des formules. Je m'explique:

J'ai dans ma Feuil1 mes cellules A1:Z1 qui ont pour valeur les mêmes que A1:Z1 de ma Feuil2.

Quand je tire le coin inférieur droit d'une cellule, j'étends la formule sur la zone étirée, ainsi si en Feuil1!A1 j'ai "=Feuil2!A2", si j'étends sur Feuil1!A2, je vais bien avoir "=Feuil2!A2" comme formule. Normal.

Oui mais voila, si dans ma feuille 2 les lignes s'enchainent normalement (base de données), dans ma feuille 1 j'ai une ligne sur 2 seulement qui doit reprendre les données de la feuille 2. Donc, si j'étends la formule par le coin inférieur droit ça ne fonctionne pas...

Actuellement, j'ai donc:
A1 = Feuil2!A1
A2 = Feuil2!A2
A3 = Feuil2!A
etc...

Alors que je voudrais:
A1 = Feuil2!A1
A2 = vide
A3 = Feuil2!A2
A4 = vide
A5 = Feuil2!A3
etc...

Et ce, sur une zone allant de A1:Z1 à A1300:Z1300, donc à la main ça ne me dit pas trop. Je vois pas trop comment faire, alors si une bonne âme avait une formule magique ou une macro... :)

Merci d'avance pour vos idées ;)
 

foxr33

XLDnaute Nouveau
Re : Remplissage automatique

Bonsoir Rachid,

Je mets un fichier exemple, bon on est à un peu plus qu'une zone A:Z, mais c'était pour simplifier :)

Dans l'exemple, les lignes 8,10,12,14 de la feuil1 s'alimentent depuis la base de données en feuil2. Dans la réalité, j'ai 1300 "ID" en feuil1 et une base de données plus complexe :)

Je cherche donc un moyen rapide de coller les formules relatives en lignes 16 à ......., sans copier ces formules sur les lignes impaires qui doivent rester vides pour le moment :)

J'espère que je suis assez clair, c'est pas simple à expliquer :)
 

Pièces jointes

  • exemple.xlsx
    60.2 KB · Affichages: 72
  • exemple.xlsx
    60.2 KB · Affichages: 75
  • exemple.xlsx
    60.2 KB · Affichages: 88

bbb38

XLDnaute Accro
Re : Remplissage automatique

Bonjour foxr33, Rachid, le forum,
Peux-tu confirmer ton souhait, à savoir que :
- Les cellules de E8 à PO8 de la feuille1 doivent être complétées, soit par la cellule B2 ou C2 (feuiile2) suivant la valeur de la cellule A2 (feuille2) et la valeur de la cellule E4 de la feuille1.
- Les cellules de E10 à PO10 de la feuille1 doivent être complétées, soit par la cellule B3 ou C3 (feuiile2) suivant la valeur de la cellule A3 (feuille2) et la valeur de la cellule E5 de la feuille1.
- Les cellules de E12 à PO12 de la feuille1 doivent être complétées, soit par la cellule B4 ou C4 (feuiile2) suivant la valeur de la cellule A4 (feuille2) et la valeur de la cellule E6 de la feuille1.
- Les cellules de E14 à PO14 de la feuille1 doivent être complétées, soit par la cellule B5 ou C5 (feuiile2) suivant la valeur de la cellule A5 (feuille2) et la valeur de la cellule E7 de la feuille1.
- Les cellules de E16 à PO16 de la feuille1 doivent être complétées, soit par la cellule B6 ou C6 (feuiile2) suivant la valeur de la cellule A6 (feuille2) et la valeur de la cellule E8 de la feuille1.
- Etc….
Cordialement,
Bernard
 

foxr33

XLDnaute Nouveau
Re : Remplissage automatique

Bonjour foxr33, Rachid, le forum,
Peux-tu confirmer ton souhait, à savoir que :
- Les cellules de E8 à PO8 de la feuille1 doivent être complétées, soit par la cellule B2 ou C2 (feuiile2) suivant la valeur de la cellule A2 (feuille2) et la valeur de la cellule E4 de la feuille1.
- Les cellules de E10 à PO10 de la feuille1 doivent être complétées, soit par la cellule B3 ou C3 (feuiile2) suivant la valeur de la cellule A3 (feuille2) et la valeur de la cellule E5 de la feuille1.
- Les cellules de E12 à PO12 de la feuille1 doivent être complétées, soit par la cellule B4 ou C4 (feuiile2) suivant la valeur de la cellule A4 (feuille2) et la valeur de la cellule E6 de la feuille1.
- Les cellules de E14 à PO14 de la feuille1 doivent être complétées, soit par la cellule B5 ou C5 (feuiile2) suivant la valeur de la cellule A5 (feuille2) et la valeur de la cellule E7 de la feuille1.
- Les cellules de E16 à PO16 de la feuille1 doivent être complétées, soit par la cellule B6 ou C6 (feuiile2) suivant la valeur de la cellule A6 (feuille2) et la valeur de la cellule E8 de la feuille1.
- Etc….
Cordialement,
Bernard

Bonjour à tous :)

Oui Bernard, je te confirme, c'est bien cela que je souhaite faire :)

Bonne journée.
 

foxr33

XLDnaute Nouveau
Re : Remplissage automatique

Bonsoir les gens, bonsoir mapomme :)

mapomme, j'ai regardé ton fichier. Un grand merci pour la pédagogie, par contre cela ne convient pas dans le sens où ta formule est trop complexe. En effet, dans le fichier exemple que j'ai mis, j'avais mis une formule très simple, donc on pourrait se servir de ta formule complexe, sauf que: dans la réalité, ma formule sur le fichier original est complexe aussi, et au final on obtiendrait quelque chose d'incompréhensible en cas d'erreur...

je cherche donc à obtenir une solution conservant une formule simple en cellule.

J'ai bien tenté une macro incluant une instruction de type Range(cellule).FormulaR1C1 = ..... mais vu que dans ma formule j'ai de la concaténation, je m'en sors pas.... :(

Mon problème reste entier :)
 

foxr33

XLDnaute Nouveau
Re : Remplissage automatique

Re-bonsoir,

Alors j'ai testé la macro suivante:
Code:
Sub Macro7()
'
' Macro7 Macro
'
Dim x, y As Integer
Dim cellule, formule, cellulee As String

Sheets("Visuel").Select


y = 13
For x = 12 To 1028 Step 2
cellule = "E" & x
cellulee = "E" & x & ":" & "PO" & x
Range(cellule).FormulaR1C1 = "=SI(E$4=Bdd!$CD12;" & """" & "BF" & """" & ";SI(E$4=Bdd!$CG12;" & """" & "BI" & """" & ";SI(E$4=Bdd!$CJ12;" & """" & "BS" & """" & ";SI(Visuel!E$4>=Bdd!$BU12;SI(Visuel!E$4<=Bdd!$BV12;Bdd!$BT12;" & """" & """" & ");" & """" & """" & "))))"
Range(cellulee).FormulaR1C1 = Range(cellule).FormulaR1C1

Next x



End Sub

Malheureusement, j'ai une erreur 1004 (Erreur définie par l'application ou par l'objet) dans cette ligne:

Range(cellule).FormulaR1C1 = "=SI(E$4=Bdd!$CD12;" & """" & "BF" & """" & ";SI(E$4=Bdd!$CG12;" & """" & "BI" & """" & ";SI(E$4=Bdd!$CJ12;" & """" & "BS" & """" & ";SI(Visuel!E$4>=Bdd!$BU12;SI(Visuel!E$4<=Bdd!$BV12;Bdd!$BT12;" & """" & """" & ");" & """" & """" & "))))"

Quand j'enlève le = en début de formule, donc en faisant ça:

Range(cellule).FormulaR1C1 = "SI(E$4=Bdd!$CD12;" & """" & "BF" & """" & ";SI(E$4=Bdd!$CG12;" & """" & "BI" & """" & ";SI(E$4=Bdd!$CJ12;" & """" & "BS" & """" & ";SI(Visuel!E$4>=Bdd!$BU12;SI(Visuel!E$4<=Bdd!$BV12;Bdd!$BT12;" & """" & """" & ");" & """" & """" & "))))"

ça fonctionne, sauf que je me retrouve avec une variable texte dans les cellules, et non la formule en tant que telle :(

une idée ??
 

Discussions similaires

Statistiques des forums

Discussions
312 331
Messages
2 087 354
Membres
103 528
dernier inscrit
hplus