XL 2021 Coller "RdV Fait Facturé" de "J" ligne active jusqu'à "J" dernière ligne NON vide

Usine à gaz

XLDnaute Barbatruc
Bonjour à toutes et à tous :)

Encore et toujours besoin de nos ténors bienveillants...
Dans mon Usine à gaz, j'ai fait un code
VB:
'col J
    [MaCell].Select
    ActiveCell.Offset(0, 9) = "RdV Fait Facturé"
    ActiveCell.Offset(0, 9).Select: Selection.Copy
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(100, 0)).PasteSpecial Paste:=xlPasteValue, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Selection.Copy
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False

La ligne qui me pose soucis est la suivante :
le but est de copier
- Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(100, 0)).PasteSpecial Paste:=xlPasteValue, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False

Je suis en cellule active "A4090"
Je voudrais écrire :
ActiveCell.Offset(0, 9) = "RdV Fait Facturé"
Je voudrais écrire "RdV Fait Facturé" de la cellule "J4090 (ActiveCell.Offset(0, 9)" jusqu’à la dernière NON VIDE de la col "J"

Bon sang, je n'y arrive ps :mad:
Pourriez-vous m'aider ?
Si besoin, je ferai un fichier test.
Grand merci à toutes et à tous :)
Je continue mes élucubrations ... :)
 
Solution
dans ta syntaxe. activecell est toujours A4090
et rows.count.end(xldown).. comme ce n'est pas spécifié.. je pense qu'il prend par défaut à partir de la cellule active..
et tu finis par un .row... ==> en gros. tu mélanges les choux et les carrottes..

un essai pas testé..
set CelDeb = activecell.offset(0,9) ==> CelDeb est donc J4090
range(CelDeb,CelDeb.end(xldown)="Rdv Fait Facturé"

Usine à gaz

XLDnaute Barbatruc
Re-Bjr :)
j'ai fait des tentatives sans trouver Grrr !!!

J'en suis là :
Je suis en cellule active "A4090"
coller de "J4090 (ActiveCell.Offset(0, 9)"
Dim i As Long
DL = Sheets("Appels").Range("ActiveCell.Offset(0, 9)" & Rows.Count).End(xlDown).Row = "RdV Fait Facturé"
mais ça ne fonctionne pas :mad:
 

vgendron

XLDnaute Barbatruc
dans ta syntaxe. activecell est toujours A4090
et rows.count.end(xldown).. comme ce n'est pas spécifié.. je pense qu'il prend par défaut à partir de la cellule active..
et tu finis par un .row... ==> en gros. tu mélanges les choux et les carrottes..

un essai pas testé..
set CelDeb = activecell.offset(0,9) ==> CelDeb est donc J4090
range(CelDeb,CelDeb.end(xldown)="Rdv Fait Facturé"
 

Usine à gaz

XLDnaute Barbatruc
Re :)

le code fonctionne bien mais il ne va pas jusqu'aux dernières lignes :)
J'essaie de voir ce qu'il faudrait modifier et (vu les bientôt 50° ici), ça va être difficile pour moi 🤪
En cas, je te mets le code :
VB:
Sub FacturatioNvelle()
[J3].Select
RétabliMenu
Sheets("Dr House_Raissa").Visible = True
Sheets("Facture").Visible = True
[AF4].FormulaR1C1 = "08/08/2023"
'select lignes vides à partir de ligne 7 end(xldown)
Range("A7:L" & Range("A65536").End(xlUp).Row).SpecialCells(xlCellTypeVisible).Select
[AB4].FormulaR1C1 = "=COUNTA(R[4086]C[-27]:R[19996]C[-27])"
ActiveCell.Name = "MaCell" 'nomme la cellule
Selection.AutoFilter
[MaCell].Select: ActiveWindow.ScrollRow = Selection.Row

'formules en col ab-ae-bg
    [MaCell].Select
        Set CelDeb = ActiveCell.Offset(0, 27)
    Range(CelDeb, CelDeb.End(xlDown)).FormulaR1C1 = "=IF(RC[-18]=""RdV Fait Facturé"",0,SUBSTITUTE(SUBSTITUTE(LEFT(RC[-17],10),"" "",""."",1),"" "",""."",1))"
        Set CelDeb = ActiveCell.Offset(0, 31)
    Range(CelDeb, CelDeb.End(xlDown)).FormulaR1C1 = "=IF(RC[-4]=0,"""",IF(R4C-RC[-4]>0,RC[-30]&"" - ""&RC[-31],""""))"
        Set CelDeb = ActiveCell.Offset(0, 58)
    Range(CelDeb, CelDeb.End(xlDown)).FormulaR1C1 = "=IF(RC[-27]<>"""",1,0)"

'copy valeurs dans facture
    ActiveCell.Offset(0, 27).Resize(1, 32).Select: Selection.Copy
    Range(ActiveCell.Offset(1, 0), ActiveCell.Offset(1000, 31)).PasteSpecial Paste:=xlPasteFormulas, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Range(ActiveCell.Offset(-1, 0), ActiveCell.Offset(1000, 31)).Copy
    
    Sheets("Facture").Select
    Range("C73").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
    Sheets("Appels").Select
  'col J
    [MaCell].Select
        Set CelDeb = ActiveCell.Offset(0, 9)
    Range(CelDeb, CelDeb.End(xlDown)) = "RdV Fait Facturé"
    
    Columns("AB:BG").ClearContents
    
Application.CutCopyMode = False
ActiveWindow.ScrollColumn = 6
    Range("A1").Select
' copie RdV facturé dans Dr_House Raissa + contrôle nbr total de lignes
End Sub
Je continue à chercher...
Merci pour ton aide :)
 

Usine à gaz

XLDnaute Barbatruc
Re :)
Je cherche.......
Tu veux bien me dire ce que veux dire :
Set CelDeb = ActiveCell.Offset(0, 27) = il prend en compte la cellule (0, 27) de "A" actif ?
Range(CelDeb, CelDeb.End(xlDown)) = il devrait aller jusqu'à la dernière ligne de la cellule (0, 27) de "A" actif ?
:)
 

vgendron

XLDnaute Barbatruc
euh.. t'es en surchauffe.. va vite faire un tour dans la mer !

Set CelDeb = ActiveCell.Offset(0, 27)
si la cellule active est A1
Activecell.offset(0,27) correspond à la cellule AB1
et donc CelDeb c'est la cellule AB1
maintenant
Range(CelDeb,CelDeb.end(xldown)

celDeb.end(xldown) = dernière cellule vide (ou non vide. ca dépend du contenu de la CelDeb) de la colonne AB
Admettons que ca descende jusqu'à AB50

range(CelDeb, CelDeb.end(xldown) ==> c'est la plage AB1:AB50
 

Usine à gaz

XLDnaute Barbatruc
Re :)
C'est vrai je suis en surchauffe lol :p... toutefois :
En début de code, j'ai "ActiveCell.Name = "MaCell" 'nomme la cellule" code de Gérard
et j'y revient toujours, ce qui fait que la cellule active de départ est toujours la même soit "A4090"
Donc les "Set CelDeb = ActiveCell.Offset(0, 27)" par exemple devraient donc commencer à la ligne "A4090"

Par exemple :
VB:
[MaCell].Select
        Set CelDeb = ActiveCell.Offset(0, 27)
    Range(CelDeb, CelDeb.End(xlDown)).FormulaR1C1 = "=IF(RC[-18]=""RdV Fait Facturé"",0,SUBSTITUTE(SUBSTITUTE(LEFT(RC[-17],10),"" "",""."",1),"" "",""."",1))"
Commence bien à la ligne "A4090" et Offset(0, 27) : ça c'est bon
Mais ça fini à la ligne "4190" ActiveCell.Offset(0, 27) alors que la fin est à la ligne "4232
et je ne vois pas pourquoi
Et c'est pareil pour les autres....
:)
 

Discussions similaires

Membres actuellement en ligne

Statistiques des forums

Discussions
313 259
Messages
2 096 618
Membres
106 688
dernier inscrit
Cherif99