Donner plusieurs valeurs en même temps à une variable

  • Initiateur de la discussion Initiateur de la discussion anber
  • Date de début Date de début

Boostez vos compétences Excel avec notre communauté !

Rejoignez Excel Downloads, le rendez-vous des passionnés où l'entraide fait la force. Apprenez, échangez, progressez – et tout ça gratuitement ! 👉 Inscrivez-vous maintenant !

Salut Anber, salut le forum,

Le code ci-dessous devrait te satisfaire :

Public Sub test()
Dim cel As Range 'déclare la variable cel
Dim ici As Range 'déclare la variable ici
'boucle sur toutes les cellules non vides de la colonne A (à partir de A4)
For Each cel In Range("A4:A" & Range("A65536").End(xlUp).Row)
'condition 1 : la cellule = A ou B ou C ou D
If cel = "A" Or cel = "B" Or cel = "C" Or cel = "D" Then
'**** Emplacement de la copie****
If Sheets("Feuil2").Range("A4") = "" Then 'si A4 est vide alors...
Set ici = Sheets("Feuil2").Range("A4") 'ici = A4 (onglet "Feuil2")
Else 'sinon...
Set ici = Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0) 'ici= prochaine
End If
'copie la cellule + les 3 adjacentes et les colle "ici"
Range(cel, cel.Offset(0, 3)).Copy Destination:=ici
End If 'fin condition 1
Next cel 'prochaine cellule de la boucle
End Sub


À plus,

Robert
 
Re Anber

la même pour la colonne B. Je mets en évidence ce qui à changé.

Public Sub test()
Dim cel As Range 'déclare la variable cel
Dim ici As Range 'déclare la variable ici
'boucle sur toutes les cellules non vides de la colonne B (à partir de B4)
For Each cel In Range("B4:B" & Range("B65536").End(xlUp).Row)

'condition 1 : la cellule = A ou B ou C ou D
If cel = "A" Or cel = "B" Or cel = "C" Or cel = "D" Then
'**** Emplacement de la copie****
If Sheets("Feuil2").Range("A4") = "" Then 'si A4 est vide alors...
Set ici = Sheets("Feuil2").Range("A4") 'ici = A4 (onglet "Feuil2")
Else 'sinon...
Set ici = Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0) 'ici= prochaine
End If
'copie la cellule + celle à sa gauche + les deux à sa droite
Range(cel.Offset(0, -1), cel.Offset(0, 2)).Copy Destination:=ici
[b/]
End If 'fin condition 1
Next cel 'prochaine cellule de la boucle
End Sub

À plus,

Robert
 
re,

tu supprimeras le [b/] après ici... J'ai inversé, [/b] aurais dû arrêter le gras et ne pas apparaître. Finalement je te remet tout :

Public Sub test()
Dim cel As Range 'déclare la variable cel
Dim ici As Range 'déclare la variable ici
'boucle sur toutes les cellules non vides de la colonne B (à partir de B4)
For Each cel In Range("B4:B" & Range("B65536").End(xlUp).Row)

'condition 1 : la cellule = A ou B ou C ou D
If cel = "A" Or cel = "B" Or cel = "C" Or cel = "D" Then
'**** Emplacement de la copie****
If Sheets("Feuil2").Range("A4") = "" Then 'si A4 est vide alors...
Set ici = Sheets("Feuil2").Range("A4") 'ici = A4 (onglet "Feuil2")
Else 'sinon...
Set ici = Sheets("Feuil2").Range("A65536").End(xlUp).Offset(1, 0) 'ici= prochaine
End If
'copie la cellule + celle à sa gauche + les deux à sa droite
Range(cel.Offset(0, -1), cel.Offset(0, 2)).Copy Destination:=ici

End If 'fin condition 1
Next cel 'prochaine cellule de la boucle
End Sub

À plus,

Robert
 
- Navigue sans publicité
- Accède à Cléa, notre assistante IA experte Excel... et pas que...
- Profite de fonctionnalités exclusives
Ton soutien permet à Excel Downloads de rester 100% gratuit et de continuer à rassembler les passionnés d'Excel.
Je deviens Supporter XLD
Assurez vous de marquer un message comme solution pour une meilleure transparence.

Discussions similaires

Réponses
6
Affichages
130
Réponses
3
Affichages
172
Retour