Attribuer un champ à tous les éléments de la ligne (exemple)
Résolu/Fermé
DesTunK
Messages postés
361
Date d'inscription
dimanche 27 janvier 2013
Statut
Membre
Dernière intervention
24 février 2016
-
9 févr. 2016 à 16:08
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 10 févr. 2016 à 09:57
Theo.R Messages postés 575 Date d'inscription vendredi 11 juillet 2014 Statut Membre Dernière intervention 30 mars 2016 - 10 févr. 2016 à 09:57
A voir également:
- Attribuer un champ à tous les éléments de la ligne (exemple)
- Aller à la ligne excel - Guide
- Url exemple - Guide
- Tableau word exemple - Guide
- Site de vente en ligne particulier - Guide
- Partage de photos en ligne - Guide
3 réponses
Gyrus
Messages postés
3334
Date d'inscription
samedi 20 juillet 2013
Statut
Membre
Dernière intervention
9 décembre 2016
523
9 févr. 2016 à 16:41
9 févr. 2016 à 16:41
Bonjour,
Avec une macro qui transfère les données de la Feuil1 vers la Feuil2.
A+
Avec une macro qui transfère les données de la Feuil1 vers la Feuil2.
Sub Test()
Dim WsS As Worksheet, WsC As Worksheet
Dim DerLig As Long, LigneS As Long, LigneC As Long
Dim DerColS As Integer, ColS As Integer
Set WsS = Worksheets("Feuil1") 'Feuille source
Set WsC = Worksheets("Feuil2") 'Feuille cible
DerLigs = WsS.Range("A" & Rows.Count).End(xlUp)
LigneC = 1
For LigneS = 1 To DerLigs
DerColS = WsS.Cells(LigneS, Columns.Count).End(xlToLeft).Column
For ColS = 2 To DerColS
WsC.Cells(LigneC, 1) = WsS.Cells(LigneS, 1)
WsC.Cells(LigneC, 2) = WsS.Cells(LigneS, ColS)
LigneC = LigneC + 1
Next ColS
Next LigneS
End Sub
A+
ccm81
Messages postés
10903
Date d'inscription
lundi 18 octobre 2010
Statut
Membre
Dernière intervention
19 novembre 2024
2 427
9 févr. 2016 à 17:05
9 févr. 2016 à 17:05
Bonjour
Un essai avec une (petite) macro
http://www.cjoint.com/c/FBjqeyzjtFI
Cdlmnt
Un essai avec une (petite) macro
http://www.cjoint.com/c/FBjqeyzjtFI
Cdlmnt
DesTunK
Messages postés
361
Date d'inscription
dimanche 27 janvier 2013
Statut
Membre
Dernière intervention
24 février 2016
157
10 févr. 2016 à 09:13
10 févr. 2016 à 09:13
Ca fonctionne parfaitement merci :)
Theo.R
Messages postés
575
Date d'inscription
vendredi 11 juillet 2014
Statut
Membre
Dernière intervention
30 mars 2016
31
9 févr. 2016 à 16:47
9 févr. 2016 à 16:47
bonjour,
Le code suivant fonctionne pour une feuille source en première position et une feuille vierge (cible) en 2ème position :
Le code suivant fonctionne pour une feuille source en première position et une feuille vierge (cible) en 2ème position :
Sub test()
Dim DernLigne As Long
DernLigne = Sheets(1).Range("A" & Rows.Count).End(xlUp).Row
m = 1
For i = 1 To DernLigne
Sheets(1).Select
x = WorksheetFunction.CountIf(Rows(i & ":" & i), "<>") - 1
Sheets(1).Select
Range("A" & i).Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.Copy
Sheets(2).Select
Range("B" & m).Select
Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _
False, Transpose:=True
Application.CutCopyMode = False
Range("B" & m).Select
Selection.Copy
Range("A" & m + 1 & ":A" & m + x).Select
ActiveSheet.Paste
Rows(m & ":" & m).Select
Application.CutCopyMode = False
Selection.Delete Shift:=xlUp
m = m + x
Next i
End Sub
DesTunK
Messages postés
361
Date d'inscription
dimanche 27 janvier 2013
Statut
Membre
Dernière intervention
24 février 2016
157
10 févr. 2016 à 09:17
10 févr. 2016 à 09:17
Ca fonctionne parfait, merci :)-
9 févr. 2016 à 16:52
Je dois apprendre à moins les utiliser pour gagner en perf :s
Merci Gyrus ;)
9 févr. 2016 à 17:18
C'est effectivement une très bonne habitude à prendre. Personnellement, je les bannis autant que faire se peut.
A+
9 févr. 2016 à 17:26
1) "Set" : quelle différence fait-il ? On aurait pas le même résultat entre : et ?
2) En m'autoformant au VBA, j'ai appris à définir les types d'objets qu'on utilise avec la fonction "Dim ... as ...", mais mon peu d'expérience m'amène à m'interroger sur l'utilité de cette procédure préalable.. Par exemple j'ai essayé ton code sans les "Dim" et il marche de la même manière ! Dans quels cas cela fait une différence ?
3) je passe souvent par des .Select pour changer de feuille car mettre ne fonctionne pas. C'est pour cette raison que tu passes par la fonction Cells(...) plutôt que Range(...) ?
Merci d'avance :D
9 févr. 2016 à 17:59
Exemple :
Avec l'instruction Set C=Range("A1") , la variable C représente la cellule A1.
C.address renvoie $A$1 et C.value renvoie la valeur de A1.
Par contre, si tu écris C=Range("A1"), Excel va comprendre que tu attribues la valeur de A1 à la variable C.
2) L'instruction Dim déclare et alloue de l'espace de stockage pour une (ou plusieurs) variable(s). Là encore, bien que Excel tolère que les variables ne soient pas déclarées, il est important de prendre l'habitude de la faire, ne serait-ce que pour optimiser la mémoire. Pour t'obliger à effectuer cette déclaration, tu peux activer Option Explicit en amont de la procédure.
3) Sheets(1).Range("A1").value = "X" fonctionne très bien.
de même que :
Sheets("Feuil1").Range("A1")="X"
Sheets("Feuil1").Cells(1,1)="X"
A+
9 févr. 2016 à 18:04