Boucle décalage gauche 2 lignes

Bonjour

Bien que des logiciels payant faisant ça mieux existent, mon responsable souhaite que je développe sous excel une base de donnée RH avec en final une fiche par employé.

Bref là où je bloque, j'aimerai que de la base de donnée (feuille Comp.Current) créer la fiche de l'employé (feuille 1).

1. Macro Insérer Photo = ok

2. fonction index = ok

3. macro masquer ligne ou colonne = ok mais c'est pas tout à fait mon besoin

PB: (que j'ai essayer de résoudre en parourant le forum, la fonction décaler mais pas tout à fait ce que je veux)

si Mr N à les compétences A, E, J avec les dates d'expiration qui correspondent. Je souhaite donc que lors du transfert vers la fiche de l'employé seules ses compétences acquises s'affichent mais en plus soient stockées à partir de la colonne A.

Soit CompA=Ax, Dateexpiration CompA=Bx, CompE=Cx, Dateexpiration CompE=Dx......(voir fichier joint)

En gros je n'arrive pas à créer une bouche qui dès que le niveau d'une compétence est nulle celle-ci ne s'affiche pas et qu'en plus cela décale les suivantes vers la gauche.

En espérant avoir été clair et que le fichier le soit aussi.

Merci de votre aide

Bonjour et bienvenue sur le forum

Un essai à tester. Te convient-il ?

Bye !

Bonjour

Merci pour ton aide.

Donc même si je pensais que le copy past n'était pas le moyen le plus simple/léger il me convient.

j'ai lu des article sur dictionnaire ou autre et comprends pas tout.

Bref, c'est presque ce que je veux en fait je souhaite garder la colonne niveau de compétence et la date d'expiration associé.

Donc si pas de certificat, pas de date de fin et les 2 colonnes ne seront pas reportées, si certificat alors les 2 colonnes sont à reportées.

si pas possible je peux concatener.

donc je commence par chercher à comprendre ce que tu as fait et pis si j'ai des question je reviendrai.

merci

Bonjour

rafton a écrit :

si certificat alors les 2 colonnes sont à reportées.

Qu'à cela ne tienne ! Voilà la version avec les 2 colonnes :

hum j'ai pas encore essayé ta proposition mais j'ai trouvé au lieu d'un pas de 2 j'en fais un de 1.

Bon la suite trouver comment récupérer ces données et ce système sans modifier la mise en page cible.

D'ailleurs pas réussi à refaire le titre/en-tête qui se met tout bien comme il faut.

Question de temps recherche je pense. mais vais y arriver

Merci pour ton aide

Merci GMB pour ton aide j'avais de mon côté fait ce code:

Sub Comp_gmb()

'If Selection.Count > 1 Then End

ln = Range("A1") + 3

Application.ScreenUpdating = False

Range("A19").CurrentRegion.Offset(0, 0).Clear

With Sheets("Current Skill")

i = 0

For col = 11 To 36 Step 1

If .Cells(ln, col) <> "00/01/1900" And .Cells(ln, col) <> 0 Then

coln = Cells(19, Cells(19, Columns.Count).End(xlToLeft).Column).Column

.Cells(3, col).Copy

Cells(19, coln + i).PasteSpecial xlPasteValues

.Cells(ln, col).Copy

Cells(20, coln + i).PasteSpecial xlPasteAll

i = 1

End If

Next col

End With

Rows("18:18").HorizontalAlignment = xlLeft

Range(Cells(18, "A"), Cells(18, coln + 1)).HorizontalAlignment = xlCenterAcrossSelection

Range("A1").Select

Application.ScreenUpdating = True

End Sub

Comme tu l'auras compris le nom des onglets source et cible ont changé, tout comme certaines lignes départ et fin.

Donc cela marche bien sauf pour la ligne titre : "official External....." qui ne s'affiche pas et donc ne fait pas la mise en forme comme dans ton exemple. Elle est où la couille dans le paté dans la macro que j'ai adaptée ?

Ensuite, comment faire pour conserver la mise en forme cible avec les valeurs de la source ?

Là j'ai voulu jouer avec PasteSpecial xlPasteAll ou values et ça marche la première fois mais pas les suivantes ?

Merci pour ton aide et je cherche de mon côté.

Bonjour

rafton a écrit :

cela marche bien sauf pour la ligne titre : "official External....." qui ne s'affiche p

Le code me semble bon mais sans le fichier qui va avec , je ne peux rien dire de plus.

Si tu ne trouves pas, envoie moi-le.

comment faire pour conserver la mise en forme cible avec les valeurs de la source

Pour garder le format existant sur les cellules de destination, il faut faire un ''xlPasteValues''

Mais tu perdras les formules de la cellule copiée pour ne coller que la valeur qu'elle contient

Si tu fais un ''xlPasteAll'', tu colles le format et la formule de la cellule copiée.

Si tu veux le format et la valeur (pas la formule qui pourrait être par exemple ''= A10*C3'') alors il te faut répéter l'instruction, une fois avec ''xlPasteValues'' et une deuxième fois avec ''xlPasteFormats''

OK ?

Merci GMB

je reviens que maintenant mais j'ai trouvé mon erreur et tout fonctionne parfaitement maintenant.

Merci pour ton aide en tout cas cela m'a bien servi.

Rechercher des sujets similaires à "boucle decalage gauche lignes"