Ceci est une page optimisée pour les mobiles. Cliquez sur ce texte pour afficher la vraie page.

Macro boucle....

  • Initiateur de la discussion Initiateur de la discussion joums
  • 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 !

joums

XLDnaute Occasionnel
Bonjour,

J'ai copier des données présente en "Feuil1" dans une autre feuille.
Les données copiées doivent être copié dans la 1ère cellule vide (boucle à partir de B10).

voici le code utilisé mais qui bug
merci de votre aide
Code:
 Sheets("Feuil1").Select
    Range("B4:D4").Select
    
    Application.CutCopyMode = False
    Selection.Copy
   
   Sheets("parametre").Activate
    Range("A10").Select
   
 ' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
' Passe à la ligne suivante
 
Selection.Offset(1, 0).Select

Loop
    ActiveSheet.Paste

je vous joint les fichiers
 

Pièces jointes

Re : Macro boucle....

Bonsoir joums et le forum,

Essaye avec le code suivant :

Private Sub CommandButton1_Click()
' Déclaration des variables
Dim Plage As Range, Cell As Range, N As Byte
' Travail sur les objets de la feuille suivante
With Sheets("Feuil1")
Set Plage = .Range("B4😀4") ' Définition de l'objet Plage
End With ' Fin de l'assignation à la feuille
' Travail sur les objets de la feuille suivante
With Sheets("parametre")
N = 11 ' Ligne de début de report des valeurs de la plage
For Each Cell In Plage
.Cells(N, 2) = Cell ' Report de la valeur
N = N + 1 ' Changement de ligne
Next Cell ' cellule suivante de Plage
End With ' Fin de l'assignation à la feuille
End Sub
 
Re : Macro boucle....

Bonjour,
j'ai essayé de mettre la code pour réaliser la copier de données dans une autre feuille.
Mais je n'y arrive toujours pas 🙁

Pourriez-vous m'expliquer le code ou m'orienter vers ce que je souhaite

merci
 
Re : Macro boucle....

Bonjour le fil, bonjour le forum,

Essaie comme ça :
Code:
Private Sub CommandButton1_Click()
Dim dest As Range 'déclare la variable dest (DESTination)
 
'définit la variable dest (première ligne vide rencontrée dans la colonne B de l'onglet "parametre")
Set dest = Sheets("parametre").Range("B65536").End(xlUp).Offset(1, 0)
 
Range("B4:D4").Copy dest 'copie la plage B4:D4 et la colle dans dest
End Sub
 
Re : Macro boucle....

Bonjour,

merci pour cette solution
j'ai trouver pourquoi ma méthode ne marchait pas.
il manquait un "." pour dénfinir la feuille "parametre.

Donc voici le code qui marche
Code:
Sheets("Feuil1").Select
    Range("B4:D4").Select
    
    Application.CutCopyMode = False
    Selection.Copy
   
   Sheets("parametre").Select
    .Range("A10").Select
   
 ' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
' Passe à la ligne suivante
 
Selection.Offset(1, 0).Select

Loop
    ActiveSheet.Paste

Merci pour tout
A bientot sur un autre fil
 
Re : Macro boucle....

Bonjour le fil, bonjour le forum,

Ton code pourrait fontionner (sans le point) mais il serait ralenti car il faut toujours éviter au maximum les Select. Ce que ta boucle ne fait pas.

Sinon je ne vois pas trop la différence entre ton premier code et celui-ci ? Si ce n'est que tu as remplacé Sheets("parametre").Activate par Sheets("paramètre").Select (c'est pratiquement la même chose)... et aussi le point devant .Range("A10") qui va planter si tu n'utilises pas With et End With... Tu aurais pu/dû écrire ceci :
Code:
With Sheets("parametre")
[COLOR=navy].[/COLOR][COLOR=black]Select[/COLOR]
[COLOR=black].Range("A10").Select[/COLOR]
[COLOR=black]End With[/COLOR]
ou plus simplement sans le point
Code:
Sheets("parametre").Activate
[COLOR=black]Range("A10").Select[/COLOR]
comme dans ton premier code

Ensuite tu veux placer dans la colonne B et tu sélectionnes A10 pour la boucle ??? J'ai pas compris là non plus.
 
Dernière édition:
Re : Macro boucle....

Merci pour ces remarques, je vais en tenir
voici le code utisé et le fichier joint

Code:
' Déclaration des variables
Dim Plage As Range
' Travail sur les objets de la feuille suivante
With Sheets("Feuil1")
Set Plage = .Range("B4:D4") ' Définition de l'objet Plage
   
End With ' Fin de l'assignation à la feuille
Plage.Select
 Application.CutCopyMode = False
    Selection.Copy



' Travail sur les objets de la feuille suivante
With Sheets("parametre")
.Select
.Range("A10").Select
End With

 ' Boucle tant que pas vide
Do While Not (IsEmpty(ActiveCell))
' Passe à la ligne suivante
 
Selection.Offset(1, 0).Select
'
Loop
    ActiveSheet.Paste
    
End Sub

Ce code est-il adapté ou il y aurait des anomalies?
 

Pièces jointes

Re : Macro boucle....

Bonjour Joums, bonjour le forum,

En pièce jointe ton fichier où je t'ai commenté la macro. Le bouton fonctionne de la même manière mais avec juste deux lignes de code.
 

Pièces jointes

Re : Macro boucle....

Oui effectivement,
c'est beaucoup plus simple et rapide,
j'ai tendance à tout détaillé "pas à pas" ce qui est inutile et ralentit le code.

Merci beaucoup pour ces explications, ca m'a fait comprendre pas mal de chose.
Je vais corriger de suite mon fichier.
 
- 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

Discussions similaires

Réponses
10
Affichages
792
Réponses
12
Affichages
923
Réponses
1
Affichages
477
B
  • Résolu(e)
2
Réponses
16
Affichages
2 K
benbella1991
B
Les cookies sont requis pour utiliser ce site. Vous devez les accepter pour continuer à utiliser le site. En savoir plus…