Problème fonction range

Bonjour,

J'ai un problème avec ma fonction range.

L'objectif de mon programme et de pouvoir choisir dans un fichier n'importe quelle colonne de données dans n'importe quelle feuille de mon fichier excel puis de coller la colonne choisie dans une nouvelle feuille en ligne avec la fonction copier en transposant.

Voici mon code :

Sub Macro1()
'
' Macro1 Macro
'

Dim xName1 As String
Dim xName2 As String
Dim range1 As Object
Dim range2 As Object
Dim xSht As Object
Dim I As Integer

On Error Resume Next
xName1 = InputBox("Please enter a name for this new sheet ", "Kutools for Excel")
If xName1 = "" Then Exit Sub
Set xSht = Sheets(xName1)
If Not xSht Is Nothing Then
MsgBox "Sheet cannot be created as there is already a worksheet with the same name in this workbook"
Exit Sub
End If
Sheets.Add(, Sheets(Sheets.Count)).Name = xName1

'

xName2 = InputBox("NOM de la feuille avec les données à copier", "Kutools for Excel")

range1 = InputBox("range premiere case à copier", "Kutools for Excel")
range2 = InputBox("range derniere case à copier", "Kutools for Excel")
Worksheets(xName2).Range("range1 : range2").Copy
Worksheets(xName1).Select
Range("B2").Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True

End Sub

Cependant la fonction range n'accepte pas que les données viennent de InputBox mais quand je mets manuellement la plage de données cela fonctionne très bien.

Cordialement

9classeurforum.xlsm (18.62 Ko)

Edit Modo : merci d'utiliser les balises de codes disponibles dans le menu en cliquant sur l'icone </> et en collant le code dans la fenetre

Bonjour Moos,

Le problème vient de la ligne "Worksheets(xName2).Range("range1 : range2").Copy", range1 et range2 ne peuvent pas être remplacés par leur valeur puisqu'ils sont contenus dans la chaîne textuelle ...

Cordialement,

Yves

Bonjour Cylfo;
Deux chose range1 et range2 sont de type string et non object car tes inputbox ne renverront pas un objet de type Range

Mais il faut également remplacer cela

Worksheets(xName2).Range("range1 : range2").Copy

Par cela

Worksheets(xName2).Range(range1 & ":" & range2).Copy

Merci beaucoup. Le programme fonctionne

De rien

Bonne journée à vous

Rechercher des sujets similaires à "probleme fonction range"