XL 2010 glisser - déposer (drag and drop) en VBA

nounbxl76

XLDnaute Occasionnel
Bonsoir à tous,

Je vous sollicite car je n'ai (malheureusement) toujours pas les compétences requises pour venir à bout d'une problématique donc je m'en remets aux pros :)

Sur le fichier joint, j'ai un onglet "data" et un onglet "suivi". Dans l'onglet "suivi", je récupère des infos depuis l'onglet "data" via des formules de type rechercheV ou index ou autre pour exploitation.

J'aimerais que lorsque que je clique sur le bouton "mise à jour", il s'opère un drag and drop (glisser - déposer) de type "recopier les valeurs sans la mise en forme" depuis la colonne E jusqu'à ce que le nombre de colonnes entre l'onglet "data" et l'onglet "suivi" soit identique. J'ai fait quelques tentatives avec une boucle de type "do while" "il n'y a plus de colonne" (LOL !) mais je suis vraiment trop nul !

Merci par avance à ceux qui se pencheront sur mon problème.

Bonne soirée
 

Pièces jointes

  • test drag and drop.xlsm
    16.8 KB · Affichages: 46

sousou

XLDnaute Barbatruc
Bonssoir
essaie ce code
Sub deb()
With Sheets("data")
n = 1
While .Cells(2, n) <> ""
n = n + 1
Wend
nbcol = n - 4 - 1
End With
With Sheets("Suivi")
n = 1
While .Cells(6 + n, 5) <> ""
For k = 6 To 5 + nbcol
.Cells(6 + n, k) = .Cells(6 + n, 5).Value
Next
n = n + 1

Wend
End With

End Sub
 

nounbxl76

XLDnaute Occasionnel
Bonjour,

Merci pour ce retour !
la macro semble faire un "drag and drop" de type "copier les cellules" (car j'ai les mêmes valeurs de ligne sur toutes les colonnes) et non un "drag and drop" de type "recopier les valeurs sans la mise en forme" pour garantir que les formules étaient déployées sur l'ensemble des colonnes.

Cordialement,
 

sousou

XLDnaute Barbatruc
pas bien regardé ta demande
essaie ainsi

Sub deb()
With Sheets("data")
n = 1
While .Cells(2, n) <> ""
n = n + 1
Wend
nbcol = n - 4 - 1
End With

With Sheets("Suivi")
For k = 6 To 5 + nbcol
.Cells(6, k) = Sheets("data").Cells(2, k - 1).Value
Next


n = 1
While .Cells(6 + n, 5) <> ""
For k = 6 To 5 + nbcol
.Cells(6 + n, k) = .Cells(6 + n, 5).FormulaR1C1
Next
n = n + 1
Wend
End With

End Sub
 

Discussions similaires

Réponses
6
Affichages
911