Première colonne vide disponible ?

Le
access13090
Bonjour à tou(te)s,

J'ai parcouru les news pour trouver une solution à ma problématique,
sans succès (où alors je suis passé à côté).

Je cherche une instruction en vba qui me permette de copier sur une
feuille de calculs une plage de données pur ensuite coller cette
sélection dans une autre feuille de calculs du même classeur mais dans
la première colonne vide disponible.

Auriez-vous une solution

Merci d'avance
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
michdenis
Le #18471911
Un petit exemple :
'-----------------------------------
Sub test()
'Feuille où sont les données
With Worksheets("Feuil1") 'à adapter
Set rg = .Range("A1:H25") 'Plage à adapter
End With

'Feuille où sont copiées les données
With Worksheets("Feuil2") 'Nom à adapter
col = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column + 1
rg.Copy .Cells(1, col)
End With

End Sub
'-----------------------------------



"access13090" :
Bonjour à tou(te)s,

J'ai parcouru les news pour trouver une solution à ma problématique,
sans succès (où alors je suis passé à côté).

Je cherche une instruction en vba qui me permette de copier sur une
feuille de calculs une plage de données pur ensuite coller cette
sélection dans une autre feuille de calculs du même classeur mais dans
la première colonne vide disponible.

Auriez-vous une solution

Merci d'avance
access13090
Le #18472971
bonjour

Merci pour cette réponse rapide.
Cependant une erreur d'exécution 91 (variable objet ou variable de bloc
with non définie) dans le deuxième With ... End With de votre exemple.

Je suis sous Office 2003 Pro

Cordialement


michdenis avait soumis l'idée :
Un petit exemple :
'-----------------------------------
Sub test()
'Feuille où sont les données
With Worksheets("Feuil1") 'à adapter
Set rg = .Range("A1:H25") 'Plage à adapter
End With

'Feuille où sont copiées les données
With Worksheets("Feuil2") 'Nom à adapter
col = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column + 1
rg.Copy .Cells(1, col)
End With

End Sub


michdenis
Le #18473921
Le message provient de la méthode Find.
Dans certains cas, je suppose que ta feuille de destination
et vide, comme la méthode Find ne trouve pas, elle
renvoie une erreur de type 91 et c'est normal !
Il s'agit d'adapter un peu la procédure comme ceci :


Sub test()
Dim Rg As Range, Col As Range
'Feuille où sont les données
With Worksheets("Feuil1") 'à adapter
Set Rg = .Range("A1:H25") 'Plage à adapter
End With

'Feuille où sont copiées les données
With Worksheets("Feuil2") 'Nom à adapter
Set Col = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious)
If Not Col Is Nothing Then
Rg.Copy .Cells(1, Col.Column + 1)
Else
Rg.Copy .Cells(1, 1)
End If
End With
Set Rg = Nothing: Set Col = Nothing
End Sub




"access13090" :
bonjour

Merci pour cette réponse rapide.
Cependant une erreur d'exécution 91 (variable objet ou variable de bloc
with non définie) dans le deuxième With ... End With de votre exemple.

Je suis sous Office 2003 Pro

Cordialement


michdenis avait soumis l'idée :
Un petit exemple :
'-----------------------------------
Sub test()
'Feuille où sont les données
With Worksheets("Feuil1") 'à adapter
Set rg = .Range("A1:H25") 'Plage à adapter
End With

'Feuille où sont copiées les données
With Worksheets("Feuil2") 'Nom à adapter
col = .Cells.Find(What:="*", _
LookIn:=xlFormulas, _
SearchOrder:=xlByColumns, _
SearchDirection:=xlPrevious).Column + 1
rg.Copy .Cells(1, col)
End With

End Sub


access13090
Le #18477751
Bonjour,
Merci pour vos explications
Cordialement.

michdenis a présenté l'énoncé suivant :
Publicité
Poster une réponse
Anonyme