Modification code et macro transposer valeurs

Bonjour à tous,

Je solicite votre aide afin de m'aider à modifier un bout de code sur lequel je n'arrive pas.

Sub Nouvelle_demande()
Dim lign As Long, tb()
tb = Range("D4:AI4") 'Ligne à copier
With Sheets("Compilation")

lign = .Range("M" & .Rows.Count).End(xlUp).Row + 1 'recherche la dernière ligne vide de la colonne M
        .Range("D" & lign).Resize(1, UBound(tb, 2)) = tb  
End With

 On Error Resume Next
  ' Plage d'effacement des valeurs mais pas des formules
 Range("D4:AI4").SpecialCells(xlCellTypeConstants, 23).ClearContents
  On Error GoTo 0

End Sub

J'aimerai avec ce code qu'il me copie en même temps les formules en elles même. Pour le moment, il ne me colle uniquement les valeurs. Pour information, ce code est à ce détail prés, exactement ce qu'il me faut. J'aimerai donc éviter de trop le changer.

J'ai une deuxième question pour une âme charitable

Est-il possible de copier les transposer les valeurs d'une colonne vers une deuxième sans effacer les données de la deuxième ?

Un exemple: Copier le "4" de la colonne B vers la A sans effacer les données de la A

En A En B

1

2

3

................ 4

5

Je vous remercie grandement par avance pour votre aide !

Bonjour,

Il serait peut-être bon d'éclaircir préalablement ce point:

tb = Range("D4:AI4")

Telle que définie, ce sera la plage A4:D14 donc une plage de 11 lignes et 4 colonnes... Confirmes-tu ?

Bonjour Mferrand.

Non, c'est une seule ligne ( la 4 ) de la colonne A jusqu'à AI (i en majuscule pour pas confondre avec le L).

Sur cette ligne, je rentre des valeurs, dont certaines cases contiennent des formules.

Je souhaite au travers de ce code, copier coller cette ligne vers la première ligne non vide de mon tableau (à partir de la ligne 11).

Pour le moment, ce code me copie uniquement les valeurs qui sont inscrites sur toute la ligne mais sans les formules...

Est-ce possible ? Ou bien mon code est à changer radicalement ?

J'ai ma lu ! OK ! Maintenant je voudrais savoir si la ligne copiée se trouve sur la feuille compilation où sur une autre feuille, je n'aime pas les expressions non qualifiées...

Pour avoir les formules, il faut passer à une copie ordinaire pour avoir les formules à l'arrivée...

Je te joins le fichier pour que ça soit plus clair pour toi.

La ligne que je copie est bien sur cette feuille "Compilation".

Ce code marche très bien au détail près qu'elle ne copie pas les formules ce qui m'embête..


Désolé, voilà le fichier

8test-2.xlsm (928.12 Ko)

Bonjour,

Sub Nouvelle_demande()
    Dim lign As Long
    With Sheets("Compilation")
        lign = .Range("M" & .Rows.Count).End(xlUp).Row + 1
        [Nouveau].Copy .Range("D" & lign)
    End With
    On Error Resume Next
    .Range("D4:AI4").SpecialCells(xlCellTypeConstants, 23).ClearContents
End Sub

NB- J'ai rectifié la référence de Nouveau...

Cordialement.

Je te remercie grandement !

Le code marche niquel, j'ai juste modifier le copie par copie valeur et formules

Excellente journée à toi !

Y avait des choses que tu ne voulais pas coller !

Non non, toute ma ligne est à copier, valeur et formules !

Par contre effectivement, j'avais mon deuxième problème à résoudre, mais je pense au final assez simple.

C'était copier coller une colonne qui contient des données vers une autre qui en contient aussi, sans les effacer.

Exemple:

En A

A1 = 1

A2= 2

A3= ""

A4=4

En B

B1= ""

B2= ""

B3=3

B4= ""

Je voudrai donc que dans la colonne A, on retrouve

A1 = 1

A2= 2

A3= 3

A4=4

Ceci afin de supprimer la colonne B

Tu concatènes le contenu de B avec le contenu de A, en A, cellule par cellule...

Cordialement.

Tout bêtement!

Merci beaucoup pour le temps consacré !

Bonne journée

Rechercher des sujets similaires à "modification code macro transposer valeurs"