Macro de recopie simple (sauf pour moi)

Bonjour

je cherche a réaliser une macro d'écriture qui viendra écrire le nom et prenomsissus de la feuille "Paramétrage" sur la feuille "Congés1" en ligne 38 colonne H

j'ai mis le résultat que je cherche à obtenir avec une formule.

Je cherche a réaliser cette recopie car j'ai besoin que ma liste de noms soit écrite pour qu'une macro de recopie à partir d'une base de donnée arrive à identifier les personnes et pour cela apparrement il faut que les noms soit écrits, d'ou l'utilité de cette macro recherchée ici.

Merci de votre aide

Bonjour,

Je suppose que par "écrit" tu entends non renvoyé par une formule ? Sache que si l'on a à prélever la valeur de ces cellules, cette valeur sera bien ce que tu y vois, formule ou pas. Il peut y avoir une différence en ce qui concerne les valeurs numériques, mais dans ce cas c'est aussi pareil pour les valeurs "écrites" directement ou renvoyées par une formule : l'affichage d'une valeur numérique peut être modifié par le format de cellule. Ce n'est pas le cas pour du texte...

Ceci dit, il peut être préférable de ne pas couvrir ta feuille de formules et d'y affecter directement les valeurs...

Par contre, travailler au milieu de la feuille, aussi bien pour Paramétrage que pour l'autre, c'est mettre en place une source de problèmes ultérieurs. Tu devrais réviser ta conception à cet égard.

Cordialement.

l'exemple que j'ai pris reprend les emplacements véritables, car au dessus j'ai des lignes de comptage qui servent à vérifier les données qui seront écrite.

mais je partage tout à fait ton point de vu car je m'en rends bien compte aussi...

Bonjour,

Sans prétentions, regarde çà.

Tu peux facilement modifier la ligne de début et de fin de la "Copie"

Ctrl+r ou "l'Etoile" pour lancer la macro

merci de ton aide, c'est presque ça que je voudrai faire, la différence, je cherche à assembler le nom + prénom sur la meme celule...

un peu comme la fonction "concatener"

Ca reviendrait à modifier ce code pour ecrire la colonne dans une autre page

quelqu'un peut m'aider a y voir clair ? suis je dans la bonne direction selon vous pour obtenir à faire ce que je veux faire ?

Option Explicit

Sub concat()
' la lettre de la constante MaColonne est celle de la
' 1ière colonne des deux colonnes à concaténer

Const MaColonne = "E"
Const Separ = " "

Dim vals, i As Long, result
With Sheets("Feuil1")
  ' on efface les précédents résultats (1ière colonne = MaColonne
  ' translatée de deux colonnes vers la droite)
  .Columns(MaColonne).Offset(, 2).ClearContents
  ' Nombre de la lignes de la 2ième colonne
  i = .Cells(.Rows.Count, MaColonne).Offset(, 1).End(xlUp).Row
  ' si le nombre de lignes de la 1iere colonne est supérieur à celui
  ' de la deuxième colonne alors on retient ce dernier nombre de ligne
  ' i = max des nombres de lignes de la 1ière et 2ième colonne
  If i <= .Cells(.Rows.Count, MaColonne).End(xlUp).Row Then _
    i = .Cells(.Rows.Count, MaColonne).End(xlUp).Row
  ' on transfère le tableau des valeurs des colonnes à concaténer
  ' de la feuille 'Feuil1' dans un tableau en mémoire (vals)
  vals = .Columns(MaColonne).Resize(i, 2).Value
  ' on crée le tableau résultat à la bonne taille
  ' (= nombre de lignes de vals)
  ReDim result(LBound(vals) To UBound(vals))

  ' boucle sur la tableau vals pour concatener
  ' chaque ligne de vals dans result
  For i = LBound(vals) To UBound(vals)
    result(i) = vals(i, 1) & Separ & vals(i, 2)
    ' si on ne désire pas de séparateur quand au moins une cellule est vide
    ' mettre en commentaire l'instruction ci-dessus et réactiver
    ' l'instruction en commentaire ci-dessous.
'    result(i) = vals(i, 1) & IIf(vals(i, 1) = "" Or vals(i, 2) = "", "", Separ) & vals(i, 2)
  Next i

  ' on transfère le résultat sur la feuille de calcul
  ' MaColonne déplacée de 2 colonnes vers la droite et redimensionnée
  ' au nombre de lignes du tableau resultat
  ' le "transpose" sert à passer le tableau result d'un tableau en ligne
  ' à un tableau en colonne
  .Columns(MaColonne).Offset(0, 2).Resize(UBound(result) - LBound(result) + 1).Value _
      = Application.Transpose(result)
End With
End Sub

[attachment=0]Concat 2 cols v2.xls[/attachment]

Je ferme ce sujet pour en recreer un plus clair car je me rends compte que je ne le suis pas, desolé je debute

Nouvelle Version

Super ca marche nickel merci beaucoup bernard22

Rechercher des sujets similaires à "macro recopie simple sauf moi"