Copier/coller d'une plage de cellule variable en vba
flavinou
-
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
gbinforme Messages postés 15481 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour
j'ai besoin de votre aide en vba Mon niveau est peu évolué
Il faut :
Sélectionner la colonne C entre les lignes g et h (cf macro)
Normalement les valeurs sont dans l'ordre croissant
Copier la sélection et la coller (cf macro)
Le critère de sélection se trouve dans la colonne E et doit être compris entre 2 valeurs d'une autre feuille (cf macro)
Pouvez vous m'aider à corriger mes fautes et à optimiser ce programme
j'ai besoin de votre aide en vba Mon niveau est peu évolué
Il faut :
Sélectionner la colonne C entre les lignes g et h (cf macro)
Normalement les valeurs sont dans l'ordre croissant
Copier la sélection et la coller (cf macro)
Le critère de sélection se trouve dans la colonne E et doit être compris entre 2 valeurs d'une autre feuille (cf macro)
Sub Nom()
Dim a As Range
Dim b As Range
Dim c As Range
Dim d As Range
Dim e As Range
Dim f As Range
Dim g As Integer
Dim h As Integer
Sheets("Paramètres").Select
a = Range("S3").Select
b = Range("T3").Select
Sheets("Name").Select
For i = 2 To 500
c = Range("E" & i).Select
If c >= a Then
g = i
d = Range("C" & g).Select
Exit For
End If
Next i
For j = g To 500
e = Range("E" & j).Select
If e >= Range("E" & g).Select Then
If e <= b Then
If (Range("E" & j + 1).Select > e) Then
Else
h = j
f = Range("C" & h).Select
Exit For
End If
End If
End If
Next j
Range("C" & g & ":C" & h).Select
Application.CutCopyMode = False
Selection.Copy
Range("I2").Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
End Sub
Pouvez vous m'aider à corriger mes fautes et à optimiser ce programme
A voir également:
- Vba copier coller une plage de cellule
- Historique copier coller - Guide
- Copier coller pdf - Guide
- Style d'écriture a copier coller - Guide
- Comment copier une vidéo youtube - Guide
- Historique copier coller windows - Accueil - Informatique
1 réponse
Bonjour,
Évites les select mis par l'enregistreur mais inutiles.
Voilà comment je corrigerais :
Évites les select mis par l'enregistreur mais inutiles.
Voilà comment je corrigerais :
Sub Nom()
Dim a As Range
Dim b As Range
Dim i As Integer
Dim j As Integer
With Sheets("Paramètres")
Set a = .Range("S3")
Set b = .Range("T3")
End With
With Sheets("Name")
For i = 2 To 500
If Range("E" & i) >= a Then
Exit For
End If
Next i
For j = i To 500
If Range("E" & j).Value >= Range("E" & i).Value Then
If Range("E" & j).Value <= b Then
If Range("E" & j + 1).Value <= Range("E" & j).Value Then
Exit For
End If
End If
End If
Next j
End With
Range("C" & i & ":C" & j).Copy
Range("I2").PasteSpecial Paste:=xlPasteValues
Application.CutCopyMode = False
End Sub
Le programme ne s'arrête pas aux bonnes valeurs
For j = i To 500 If Range("E" & j).Value <= b Then Exit For End If Next j