Première macro Excel
skrolk
Messages postés
1
Date d'inscription
Statut
Membre
Dernière intervention
-
skrolk -
skrolk -
Bonjour à tous,
C'est la première fois que je poste sur ce forum (je me présenterai dans la foulée).
Je viens de réaliser ma première macro dont le but est de copier le contenu de trois cellule, de coller le contenu de ces cellules dans une autre feuille (ou s'effectue un traitement de donné qui me donne un résultat) puis de copier coller le résultat obtenu dans la feuille1 pour l'intégrer dans la base de donnée.
Je suis bien conscient que ce paragraphe n'est pas clair... C'est pour cela que je souhaiterai joindre un fichier exemple mais je ne trouve pas comment faire.
*LE PROBLEME: la macro "saute des lignes" (1 ligne est oubliée, une ligne est traitée, deux lignes oubliées, 1 ligne traitée, 3 lignes oubliées, 1 ligne traitée...)
*Voici la macro:
Sub Copiecolle()
'
' Copiecolle Macro
'
' Touche de raccourci du clavier: Ctrl+z
'
For i = 0 To 10
ActiveCell.Offset(i, 0).Range("A1").Select
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("traitement de donné").Select
ActiveSheet.Paste
Sheets("base de donné").Select
ActiveCell.Offset(0, 3).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("traitement de donné").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
Sheets("base de donné").Select
ActiveCell.Offset(0, 3).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("traitement de donné").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
ActiveCell.Offset(0, -3).Range("A1").Select
Sheets("base de donné").Select
ActiveCell.Offset(0, -7).Range("A1").Select
ActiveSheet.Paste
Next i
End Sub
Merci d'avance,
Skrolk
C'est la première fois que je poste sur ce forum (je me présenterai dans la foulée).
Je viens de réaliser ma première macro dont le but est de copier le contenu de trois cellule, de coller le contenu de ces cellules dans une autre feuille (ou s'effectue un traitement de donné qui me donne un résultat) puis de copier coller le résultat obtenu dans la feuille1 pour l'intégrer dans la base de donnée.
Je suis bien conscient que ce paragraphe n'est pas clair... C'est pour cela que je souhaiterai joindre un fichier exemple mais je ne trouve pas comment faire.
*LE PROBLEME: la macro "saute des lignes" (1 ligne est oubliée, une ligne est traitée, deux lignes oubliées, 1 ligne traitée, 3 lignes oubliées, 1 ligne traitée...)
*Voici la macro:
Sub Copiecolle()
'
' Copiecolle Macro
'
' Touche de raccourci du clavier: Ctrl+z
'
For i = 0 To 10
ActiveCell.Offset(i, 0).Range("A1").Select
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("traitement de donné").Select
ActiveSheet.Paste
Sheets("base de donné").Select
ActiveCell.Offset(0, 3).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("traitement de donné").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
Sheets("base de donné").Select
ActiveCell.Offset(0, 3).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
Sheets("traitement de donné").Select
ActiveCell.Offset(0, 1).Range("A1").Select
ActiveSheet.Paste
ActiveCell.Offset(0, 1).Range("A1").Select
Application.CutCopyMode = False
Selection.Copy
ActiveCell.Offset(0, -3).Range("A1").Select
Sheets("base de donné").Select
ActiveCell.Offset(0, -7).Range("A1").Select
ActiveSheet.Paste
Next i
End Sub
Merci d'avance,
Skrolk
A voir également:
- Première macro Excel
- Telecharger macro convertir chiffre en lettre excel - Télécharger - Tableur
- Liste déroulante excel - Guide
- Word et excel gratuit - Guide
- Si ou excel - Guide
- Déplacer colonne excel - Guide
8 réponses
Bonjour,
Pour déposer un fichier , utiliser
https://www.cjoint.com/
Déposer le fichier et venir nous donner le lien de téléchargement dans un message ici.
Pour déposer un fichier , utiliser
https://www.cjoint.com/
Déposer le fichier et venir nous donner le lien de téléchargement dans un message ici.
Bonjour
voila un macro qui copy d'une feille a l'autre
Sub Copiecolle()
Feuil2.Select
With Feuil1
For Lig = 2 To 10
Range("A" & Lig).Value = Feuil1.Range("B" & Lig)
Range("B" & Lig).Value = Feuil1.Range("E" & Lig)
Range("C" & Lig).Value = Feuil1.Range("H" & Lig)
Next
End With
End Sub
A+
Maurice
voila un macro qui copy d'une feille a l'autre
Sub Copiecolle()
Feuil2.Select
With Feuil1
For Lig = 2 To 10
Range("A" & Lig).Value = Feuil1.Range("B" & Lig)
Range("B" & Lig).Value = Feuil1.Range("E" & Lig)
Range("C" & Lig).Value = Feuil1.Range("H" & Lig)
Next
End With
End Sub
A+
Maurice
Re
Rectification
Sub Copiecolle()
Feuil2.Select
With Feuil1
For Lig = 2 To 10
Range("A" & Lig).Value = .Range("B" & Lig)
Range("B" & Lig).Value = .Range("E" & Lig)
Range("C" & Lig).Value = .Range("H" & Lig)
Next
End With
End Sub
A+
MAurice
Rectification
Sub Copiecolle()
Feuil2.Select
With Feuil1
For Lig = 2 To 10
Range("A" & Lig).Value = .Range("B" & Lig)
Range("B" & Lig).Value = .Range("E" & Lig)
Range("C" & Lig).Value = .Range("H" & Lig)
Next
End With
End Sub
A+
MAurice
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Merci, cela marche très bien!
Ce que je cherche à faire maintenant c'est une macro qui permette (à la suite de celle de Maurice) d'effectuer le traitement de donné sur les 50 lignes suivantes de la feuille1 (B, E et H53 à 103). Puisque le traitement de donnés ne peut s'effectuer que sur 50 lignes à la fois.
Pour cela il faut d'abord copie/coller le résultat obtenue dans les cellules D2:D52 de la feuille 2 dans les cellules A2:A52 de la feuille1.
Puis copie/coller les 50 cellules suivantes de la feuille1 qui écraseront les cellules A2:C52 de la feuille2.
Est ce possible?
Voici l'état de la macro à ce jour:
Sub Copiecolleforum()
Feuil2.Select
With Feuil1
For lig = 2 To 52
Range("A" & lig).Value = .Range("B" & lig)
Range("B" & lig).Value = .Range("E" & lig)
Range("C" & lig).Value = .Range("H" & lig)
Next
End With
Feuil1.Select
With Feuil2
For lig = 2 To 52
Range("A" & lig).Value = .Range("D" & lig)
Next
End With
End Sub
A+
Skrolk
Ce que je cherche à faire maintenant c'est une macro qui permette (à la suite de celle de Maurice) d'effectuer le traitement de donné sur les 50 lignes suivantes de la feuille1 (B, E et H53 à 103). Puisque le traitement de donnés ne peut s'effectuer que sur 50 lignes à la fois.
Pour cela il faut d'abord copie/coller le résultat obtenue dans les cellules D2:D52 de la feuille 2 dans les cellules A2:A52 de la feuille1.
Puis copie/coller les 50 cellules suivantes de la feuille1 qui écraseront les cellules A2:C52 de la feuille2.
Est ce possible?
Voici l'état de la macro à ce jour:
Sub Copiecolleforum()
Feuil2.Select
With Feuil1
For lig = 2 To 52
Range("A" & lig).Value = .Range("B" & lig)
Range("B" & lig).Value = .Range("E" & lig)
Range("C" & lig).Value = .Range("H" & lig)
Next
End With
Feuil1.Select
With Feuil2
For lig = 2 To 52
Range("A" & lig).Value = .Range("D" & lig)
Next
End With
End Sub
A+
Skrolk
Re
dur le vba voila avec le compteur de ligne
Sub Copiecolle()
Feuil2.Select
Application.ScreenUpdating = False
Rows("3:10000").Delete
With Feuil1
Nlig = .Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Range("A" & lig).Value = .Range("B" & lig)
Range("B" & lig).Value = .Range("E" & lig)
Range("C" & lig).Value = .Range("H" & lig)
Solut = Range("A" & lig) & Range("B" & lig) & Range("C" & lig)
Range("D" & lig).Value = Solut
.Range("A" & lig).Value = Solut
Next
End With
Application.ScreenUpdating = True
End Sub
A+
Maurice
dur le vba voila avec le compteur de ligne
Sub Copiecolle()
Feuil2.Select
Application.ScreenUpdating = False
Rows("3:10000").Delete
With Feuil1
Nlig = .Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Range("A" & lig).Value = .Range("B" & lig)
Range("B" & lig).Value = .Range("E" & lig)
Range("C" & lig).Value = .Range("H" & lig)
Solut = Range("A" & lig) & Range("B" & lig) & Range("C" & lig)
Range("D" & lig).Value = Solut
.Range("A" & lig).Value = Solut
Next
End With
Application.ScreenUpdating = True
End Sub
A+
Maurice
Re
Le faire directement ses plus facile
a toi de choisir
Sub Test()
Feuil1.Select
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Solut = Range("B" & lig) & Range("E" & lig) & Range("H" & lig)
Range("A" & lig).Value = Solut
Next
End Sub
A+
Maurice
Le faire directement ses plus facile
a toi de choisir
Sub Test()
Feuil1.Select
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Solut = Range("B" & lig) & Range("E" & lig) & Range("H" & lig)
Range("A" & lig).Value = Solut
Next
End Sub
A+
Maurice
Aie, en fait la formule "=concatener" n'est ici que pour servir d'exemple de traitement de donné. Mon fichier original (que je ne peux malheureusement pas joindre) effectue une suite de "BDlire" qui permet d'attribuer une catégorie à l'information contenue dans la base de donné.
Seulement cette attribution n'est réalisable que pour 50 lignes. Je cherche donc une macro qui permette d'effectuer le copie/colle par "paquet" de 50...
Mais je ne comprends pas cette ligne dans ta macro:
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Peut-être que la solution est sous mes yeux et que je ne la trouve pas ^^
Merci en tout cas de te donner tant de mal pour m'initier à VBA...
Seulement cette attribution n'est réalisable que pour 50 lignes. Je cherche donc une macro qui permette d'effectuer le copie/colle par "paquet" de 50...
Mais je ne comprends pas cette ligne dans ta macro:
Nlig = Cells(Rows.Count, 2).End(xlUp).Row
For lig = 2 To Nlig
Peut-être que la solution est sous mes yeux et que je ne la trouve pas ^^
Merci en tout cas de te donner tant de mal pour m'initier à VBA...