Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

transfert de données d'une feuille à l'autre par boucle

3 réponses
Avatar
DJ9B
Bonjour à tous !
J'ai un petit problème de boucle que je n'arrive pas à réaliser ;o( !
J'ai dans une Feuil1 à partir de la cellule C3 une liste de noms qui peut
être variable ( on peut enlever ou ajouter des noms ). En regard de ces
noms, en colonne K j'ai des chiffres.Sur cette même feuille j'ai en G1 le n°
de la semaine.
J'ai sur une Feuil2 qui me sert d'historique à partir de la cellule B3 une
liste de noms variable ( on ne peut qu'ajouter des noms ), la liste comporte
tous les noms présents dans la liste de la Feuil1 plus certains autres. A
partir de la colonne C jusque colonne BC j'ai les semaines de 1 à 53.
Ce que je voudrai c'est que les données présentes en colonne K de la Feuil1
soient transférées sur la Feuil2 en tenant compte de la semaine ( de colonne
C à BC ) et des noms présents sur la liste de la Feuil1.
Toutes idée ou base de travail serait appréciée.
Merci d'avance !



--
dj9b@free.fr
www.dj9b.fr.st
et maintenant aussi :
http://dj9b.free.fr

3 réponses

Avatar
anonymousA
Bonjour,

une autre manière de procéder pourrait être la suivante, en supposant 4
choses:
la 1ere, c'est qu'on ne supprime pas de noms sur la feuille 2
la seconde,en début de semaine ( avant de changer le N° de la semaine) ,
on fasse un copier/collage spécial des valeurs en feuille 2 de la
colonne de la semaine précédente sur la même colonne.
la 3eme, si on rajoute des items à la liste de la feuille 2 alors, il
faudra copier les formules correspodantes en colonne C à BC
la 4eme, dans la plage nommée dont il va être question plus avant, si on
veut rajouter des items , il convient de le faire sans laisser de
cellules vides entre les items.

Ici dans l'exemple, j'ai déclaré en Feuille 1 une plage nommée par un
nom ( avec insertion/Défnir un nom) appelé plagenoms qui fait référence
à la formule ÞCALER(Feuil1!$C$3:$K$3;;;NBVAL(Feuil1!$C:$C))

Les éléments sont inscrits en feuille 1 à partir de la cellule C3 et il
n'y a rien en cellule C1 et C2 (si c'était le cas, il faudrait diminuer
NBVAL(Feuil1!$C:$C) de 1 ou de 2 .

En feuille 2, on inscrit dans la colonne B les valeurs qui doivent
correspondre à celles de la colonne A de la feuille 1.Dans les cellules
C1 à BC1, on écrit la séquence de chiffres de 1 à 53

En C3, on écrit la formule suivante

SI(Feuil1!$G$1þuil2!C$1;SI(ESTNA(RECHERCHEV($B3;plagenoms;11;FAUX));"";RECHERCHEV($B3;plagenoms;11;FAUX));"")

puis tu copies cette formule de B3 jusqu'à Bx puis de B3:Bx jusqu'à BC3:BCx.

Si toutes les conditions précédentes sont remplies, quand tu changes le
N° dans la cellule G1 de la feuille 1, les résultats de la colonne K
s'inscrivent dans le bonne colonne de la feuille 2.

Si tu tiens absolument à du VBA, c'est bien sur possible faire autrement
avec des méthodes classiques su style

With Sheets("Feuil1")
Set crechfeuil1 = .Range("C3:C" & Range("C65536").End(xlUp).Row)
End With
With Sheets("Feuil2")
Set crechfeuil2 = .Range("B3:B" & Range("B65536").End(xlUp).Row)
End With

For Each c In crechfeuil2
If Not crechfeuil1.Find(what:=c.Value, lookat:=xlWhole) Is Nothing Then
c.Offset(0, Sheets("Feuil1").Range("G1").Value) =
crechfeuil1.Find(what:=c.Value, lookat:=xlWhole).Offset(0, 8)
End If

Next


A+

Bonjour à tous !
J'ai un petit problème de boucle que je n'arrive pas à réaliser ;o( !
J'ai dans une Feuil1 à partir de la cellule C3 une liste de noms qui peut
être variable ( on peut enlever ou ajouter des noms ). En regard de ces
noms, en colonne K j'ai des chiffres.Sur cette même feuille j'ai en G1 le n°
de la semaine.
J'ai sur une Feuil2 qui me sert d'historique à partir de la cellule B3 une
liste de noms variable ( on ne peut qu'ajouter des noms ), la liste comporte
tous les noms présents dans la liste de la Feuil1 plus certains autres. A
partir de la colonne C jusque colonne BC j'ai les semaines de 1 à 53.
Ce que je voudrai c'est que les données présentes en colonne K de la Feuil1
soient transférées sur la Feuil2 en tenant compte de la semaine ( de colonne
C à BC ) et des noms présents sur la liste de la Feuil1.
Toutes idée ou base de travail serait appréciée.
Merci d'avance !





Avatar
anonymousA
erratum

SI(Feuil1!$G$1þuil2!C$1;SI(ESTNA(RECHERCHEV($B3;plagenoms;9;FAUX));"";RECHERCHEV($B3;plagenoms;9;FAUX));"")


A+

Bonjour,

une autre manière de procéder pourrait être la suivante, en supposant 4
choses:
la 1ere, c'est qu'on ne supprime pas de noms sur la feuille 2
la seconde,en début de semaine ( avant de changer le N° de la semaine) ,
on fasse un copier/collage spécial des valeurs en feuille 2 de la
colonne de la semaine précédente sur la même colonne.
la 3eme, si on rajoute des items à la liste de la feuille 2 alors, il
faudra copier les formules correspodantes en colonne C à BC
la 4eme, dans la plage nommée dont il va être question plus avant, si on
veut rajouter des items , il convient de le faire sans laisser de
cellules vides entre les items.

Ici dans l'exemple, j'ai déclaré en Feuille 1 une plage nommée par un
nom ( avec insertion/Défnir un nom) appelé plagenoms qui fait référence
à la formule ÞCALER(Feuil1!$C$3:$K$3;;;NBVAL(Feuil1!$C:$C))

Les éléments sont inscrits en feuille 1 à partir de la cellule C3 et il
n'y a rien en cellule C1 et C2 (si c'était le cas, il faudrait diminuer
NBVAL(Feuil1!$C:$C) de 1 ou de 2 .

En feuille 2, on inscrit dans la colonne B les valeurs qui doivent
correspondre à celles de la colonne A de la feuille 1.Dans les cellules
C1 à BC1, on écrit la séquence de chiffres de 1 à 53

En C3, on écrit la formule suivante

SI(Feuil1!$G$1þuil2!C$1;SI(ESTNA(RECHERCHEV($B3;plagenoms;11;FAUX));"";RECHERCHEV($B3;plagenoms;11;FAUX));"")


puis tu copies cette formule de B3 jusqu'à Bx puis de B3:Bx jusqu'à
BC3:BCx.

Si toutes les conditions précédentes sont remplies, quand tu changes le
N° dans la cellule G1 de la feuille 1, les résultats de la colonne K
s'inscrivent dans le bonne colonne de la feuille 2.

Si tu tiens absolument à du VBA, c'est bien sur possible faire autrement
avec des méthodes classiques su style

With Sheets("Feuil1")
Set crechfeuil1 = .Range("C3:C" & Range("C65536").End(xlUp).Row)
End With
With Sheets("Feuil2")
Set crechfeuil2 = .Range("B3:B" & Range("B65536").End(xlUp).Row)
End With

For Each c In crechfeuil2
If Not crechfeuil1.Find(what:=c.Value, lookat:=xlWhole) Is Nothing Then
c.Offset(0, Sheets("Feuil1").Range("G1").Value) =
crechfeuil1.Find(what:=c.Value, lookat:=xlWhole).Offset(0, 8)
End If

Next


A+


Bonjour à tous !
J'ai un petit problème de boucle que je n'arrive pas à réaliser ;o( !
J'ai dans une Feuil1 à partir de la cellule C3 une liste de noms qui peut
être variable ( on peut enlever ou ajouter des noms ). En regard de ces
noms, en colonne K j'ai des chiffres.Sur cette même feuille j'ai en G1
le n°
de la semaine.
J'ai sur une Feuil2 qui me sert d'historique à partir de la cellule B3
une
liste de noms variable ( on ne peut qu'ajouter des noms ), la liste
comporte
tous les noms présents dans la liste de la Feuil1 plus certains autres. A
partir de la colonne C jusque colonne BC j'ai les semaines de 1 à 53.
Ce que je voudrai c'est que les données présentes en colonne K de la
Feuil1
soient transférées sur la Feuil2 en tenant compte de la semaine ( de
colonne
C à BC ) et des noms présents sur la liste de la Feuil1.
Toutes idée ou base de travail serait appréciée.
Merci d'avance !







Avatar
DJ9B
Merci anonymousA !
J'ai choisi la solution avec vba ( qui fonctionne très bien )car les
conditions n'étaient pas réunies pour la solution par formule.
Bonne fin de journée !


--

www.dj9b.fr.st
et maintenant aussi :
http://dj9b.free.fr

Il y a peu, anonymousA nous disait :

erratum


SI(Feuil1!$G$1þuil2!C$1;SI(ESTNA(RECHERCHEV($B3;plagenoms;9;FAUX));"";RECH

ERCHEV($B3;plagenoms;9;FAUX));"")


A+

Bonjour,

une autre manière de procéder pourrait être la suivante, en
supposant 4
choses:
la 1ere, c'est qu'on ne supprime pas de noms sur la feuille 2
la seconde,en début de semaine ( avant de changer le N° de la
semaine) ,
on fasse un copier/collage spécial des valeurs en feuille 2 de la
colonne de la semaine précédente sur la même colonne.
la 3eme, si on rajoute des items à la liste de la feuille 2 alors, il
faudra copier les formules correspodantes en colonne C à BC
la 4eme, dans la plage nommée dont il va être question plus avant,
si on
veut rajouter des items , il convient de le faire sans laisser de
cellules vides entre les items.

Ici dans l'exemple, j'ai déclaré en Feuille 1 une plage nommée par un
nom ( avec insertion/Défnir un nom) appelé plagenoms qui fait
référence
à la formule ÞCALER(Feuil1!$C$3:$K$3;;;NBVAL(Feuil1!$C:$C))

Les éléments sont inscrits en feuille 1 à partir de la cellule C3 et
il
n'y a rien en cellule C1 et C2 (si c'était le cas, il faudrait
diminuer
NBVAL(Feuil1!$C:$C) de 1 ou de 2 .

En feuille 2, on inscrit dans la colonne B les valeurs qui doivent
correspondre à celles de la colonne A de la feuille 1.Dans les
cellules
C1 à BC1, on écrit la séquence de chiffres de 1 à 53

En C3, on écrit la formule suivante


SI(Feuil1!$G$1þuil2!C$1;SI(ESTNA(RECHERCHEV($B3;plagenoms;11;FAUX));"";REC


HERCHEV($B3;plagenoms;11;FAUX));"")


puis tu copies cette formule de B3 jusqu'à Bx puis de B3:Bx jusqu'à
BC3:BCx.

Si toutes les conditions précédentes sont remplies, quand tu changes
le
N° dans la cellule G1 de la feuille 1, les résultats de la colonne K
s'inscrivent dans le bonne colonne de la feuille 2.

Si tu tiens absolument à du VBA, c'est bien sur possible faire
autrement
avec des méthodes classiques su style

With Sheets("Feuil1")
Set crechfeuil1 = .Range("C3:C" & Range("C65536").End(xlUp).Row)
End With
With Sheets("Feuil2")
Set crechfeuil2 = .Range("B3:B" & Range("B65536").End(xlUp).Row)
End With

For Each c In crechfeuil2
If Not crechfeuil1.Find(what:=c.Value, lookat:=xlWhole) Is Nothing
Then
c.Offset(0, Sheets("Feuil1").Range("G1").Value) >> crechfeuil1.Find(what:=c.Value, lookat:=xlWhole).Offset(0, 8)
End If

Next


A+


Bonjour à tous !
J'ai un petit problème de boucle que je n'arrive pas à réaliser ;o(
!
J'ai dans une Feuil1 à partir de la cellule C3 une liste de noms
qui peut
être variable ( on peut enlever ou ajouter des noms ). En regard de
ces
noms, en colonne K j'ai des chiffres.Sur cette même feuille j'ai en
G1
le n°
de la semaine.
J'ai sur une Feuil2 qui me sert d'historique à partir de la cellule
B3
une
liste de noms variable ( on ne peut qu'ajouter des noms ), la liste
comporte
tous les noms présents dans la liste de la Feuil1 plus certains
autres. A
partir de la colonne C jusque colonne BC j'ai les semaines de 1 à
53.
Ce que je voudrai c'est que les données présentes en colonne K de la
Feuil1
soient transférées sur la Feuil2 en tenant compte de la semaine ( de
colonne
C à BC ) et des noms présents sur la liste de la Feuil1.
Toutes idée ou base de travail serait appréciée.
Merci d'avance !