Problème de copier coller sous vba:comment réduire la taille de la sél

Problème de copier coller sous vba:comment réduire la taille de la sél - VB/VBA/VBS - Programmation

Marsh Posté le 05-12-2006 à 00:00:58    

Bonjour à tous et à toutes!
Jeune newby sur excel je me suis mis récemment à la programation et je viens de tomber sur un os:
Je souhaite créer une macro qui recherche un mot dans une colonne, séléctionne la ligne où ce mot apparaît,
puis réduit la séléction de cette ligne en n'en gardant que les cellules An jusqu'à Hn, puis les copie dans une autre feuille. Après de nombreuses heures de recherche sur le web et ailleurs j'ai tenté ceci:
Sub Montre_utilisateurs_en_attente_validation()
i = 1
NombreLignes = 255
While i < NombreLignes + 1
If Cells(i, 8) = "Non" Then
Meslignes = Meslignes & i & ":" & i & ","
End If
i = i + 1
Wend
 
Meslignes = Left(Meslignes, Len(Meslignes) - 1)
Meslignes = Range(An, Hn).Select
Sheets("Data" ).Range(Meslignes).Select
Sheets("Data" ).Range(Meslignes).Copy
 
Sheets("Valider_Utilisateur" ).Select
Range("A3" ).Select
 
Do
If ActiveCell = "" Then
GoTo copiercoller
End If
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell.Value = ""
 
copiercoller:
Selection.PasteSpecial Paste:=xlPasteValues
 
' Montre_utilisateurs_en_attente_validation Macro
' Macro enregistrée le 04/12/2006 par GK
'
 
'
End Sub
 
Je vois bien que tout réussit sauf la réduction à la plage de données souhaitées..
 
Merci par avance de votre aide et désolé de vous embêtez avec quelque chose de si simple!
 
Bonne soirée

Reply

Marsh Posté le 05-12-2006 à 00:00:58   

Reply

Marsh Posté le 05-12-2006 à 07:52:29    

Bonjour,
Pour faire fonctionner sans critiquer l'ensemble de la construction:
 
Sub Montre_utilisateurs_en_attente_validation()
Sheets("data" ).Activate
 
i = 1
NombreLignes = 255
While i < NombreLignes + 1
If Cells(i, 8) = "Non" Then
Meslignes = Meslignes & "A" & i & ":H" & i & ","
End If
i = i + 1
Wend
 
aMeslignes = Left(Meslignes, Len(Meslignes) - 1)
'Meslignes = Range(An, Hn).Select
 
'Sheets("Data" ).Range(Meslignes).Select
Sheets("Data" ).Range(Meslignes).Copy
 
Sheets("Valider_Utilisateur" ).Select
Range("A3" ).Select
 
Do
If ActiveCell = "" Then
GoTo copiercoller
End If
If ActiveCell <> "" Then
ActiveCell.Offset(1, 0).Select
End If
Loop Until ActiveCell.Value = ""
 
copiercoller:
Selection.PasteSpecial Paste:=xlPasteValues
 
' Montre_utilisateurs_en_attente_validation Macro
' Macro enregistrée le 04/12/2006 par GK
'
 
'
End Sub
 
Cordialement

Reply

Marsh Posté le 05-12-2006 à 19:34:09    

Merci Beaucoup!
Après quelques ajustements ça a été parfaitement!
Votre aise a été précieuse!

Reply

Marsh Posté le 05-12-2006 à 22:04:33    

Cependant, vous pouvez critiquer l'ensemble de la construction!
Je vous encourage à le faire!
Je souhaite progresser et mieux coprendre!
Excusez moi si cette construction est impropre mais j'ai fait ce que j'ai pu avec mes faibles moyens.
Donc critiquez! cela ne peut que me faire progresser!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed